2016-11-23 10 views
0

serversideから私は以下の構造のデータを返します results.houses ここで各家とIdNameとDoorsコレクション。 各DoorIdNameです。私はすでに変数selectedHouse上記から選ば家を知っていれば、私は#DoorId でドアコンボボックスを移入するにはどうすればよいこの最も簡単な例では、コンボボックスをカスケード接続

$.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'); 
} 

更新: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

はコンボボックスライブラリ – madalinivascu

+0

@ MooshFeuへのリンクを提供しています。あなたはそれぞれの値の中にそれを推測することができます.Doorsは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

関連する問題