我将在以下结构中返回数据
results.houses
每个房屋和Id
以及Name
和门集合的位置。
每个Door
都有Id
和Name
。
$.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
填充Doors组合框
如果我已经从变量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 :(得分: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');