質問する
1447 次
2 に答える
3
最初のドロップダウンの変更イベントをリッスンし、2 番目のドロップダウンのコンテンツをJSON
フォーマットでロードし、それを 2 番目のドロップダウンに挿入します
<select id="country">
<option value='1'>USA</option>
<option value='2'>Canada</option>
</select>
<select id="States"></select>
そしてスクリプト
$(function(){
$("#country").change(function(){
var _this=$(this);
var items="";
$.getJSON("@Url.Action("GetStates","Country")/"+_this.val(),function(data){
if(data.Status==="Success")
{
$.each(data.Items,function(index, item){
items=+"<option value='"+item.ID+'">"+item.Name+"</option>";
});
}
$("#states").html(items);
});
});
});
GetStates
アクション メソッドがJSON
以下のように ID と名前を含むデータを返すと仮定します。
public ActionResult GetStates(int id)
{
List<State> stateList=yourRepositary.GetStatesForCountry(id);
return Json(new { Status="Success", Items=stateList},
JsonRequestBehaviour.AllowGet);
}
メソッドがとプロパティとしてGetStatesForCountry
State オブジェクトのリストを返すと仮定します。ID
Name
于 2012-12-17T13:19:20.930 に答える
0
jQuery はあなたの親友です。最初に変更イベントをドロップダウンリスト A にバインドしてから、サーバーへの ajax 呼び出しを行います。最後に応答を受け取り、ドロップダウンリスト B に設定します
$('#ddlA').change(function() {
$('#ddlB').load('server/pageThatReturnsHtml')
});
これは、「server/pageThatReturnsHtml」が次のような html を返すことを前提としています。
<option value="option1" selected="selected">Option 1</option>
<option value="option2">Option 2</option>
ただし、json オブジェクトを返し、結果を反復処理して項目を ddl B に追加することもできます
于 2012-12-17T13:14:11.253 に答える