2016-11-23 81 views
0

从服务器端,我在下面的结构返回数据 results.houses 每个房子和IdName和门集合。 每个DoorIdName这个简单的例子级联组合框

$.each(results.houses, function (index, value) { 
    $('#HouseId').append('<option value="' + value.Id + '">' + value.Name + '</option>'); 
    var selectedHouse = results.SelectedHouse[0].Id; 

    $('#HouseId').val(selectedHouse); 
    $('#HouseId').combobox('refresh'); 
} 

我如何填充组合框门与#DoorId 如果我已经知道从上面变量selectedHouse选择的房子。

更新:

JSON数据从服务器端控制器返回在下列格式

var _houses = HousesRepository.All().Select(x => new 
{ 
    Id = x.Id, Name = x.Name, 
    Doors = x.Doors.Select(a => new { Id = a.Id, Name = a.Name, IsDefault = a.IsDefault }) 
}); 

var data = new 
{ 
    selectedHouse = new[] { new { Id = 1, Name = "House 100 "} }, 
    houses = _houses  
}  
return Json(data); 
+0

'Doors combobox'这里的数据在哪里? –

+0

提供一个链接到组合框库 – madalinivascu

+0

@MoshFeu你可以推测在每个值内。门有Id和Name属性的每个房子的集合。 – user1765862

回答

0

你可以尝试添加所选标签添加到选定的元素:

$('#HouseId').find('option[value="'+selectedHouse+'"]').prop('selected',true); 

或更好

var selectedHouse = results.SelectedHouse[0].Id; 
var selected =''; 
if(value.Id == selectedHouse) { 
selected = "selected" 
} 
$('#HouseId').append('<option '+selected+' value="' + value.Id + '">' + value.Name + '</option>'); 
$('#HouseId').combobox('refresh'); 
+0

以及如何在选定的房屋中将相应的门加载到组合框中。该集合是可用谷值。每个门有ID和名称的门 – user1765862

+0

@ user1765862做另一个门循环 – madalinivascu

+0

你可以提供例子,只为选定的房子加载门收集。 – user1765862