国、州、およびメトロのドロップダウンリストが3つあります。 私は(AJAXのドロップダウンリストをカスケードなど)、その後メトロのDropDownList塗りつぶし私はjQueryを使ってやりたい。これらのプロセス国 seclectユーザーその後、州ドロップダウンリストは、jQueryのを満たしたときに、いつサテを選択します。Asp.NetのJQueryでドロップダウンリストをバインドする
8
A
答えて
10
私はASP.NET MVCで記述しようとしていますが、ASP.NET Webサービスを作成するか、コードの中に同じようにいくつかのページメソッドを置くだけで同じ結果が得られます。サードパーティのソリューションでも、WCFでのJSONシリアライザも必要です。 MVCを使用して
、まず、の三のコントローラのアクション持たせる - のページを表示するには1を、国が静的になり、そして2は、それぞれの状態や地下鉄を取得するには:
public ActionResult Index()
{
ViewData["Countries"] = _countryRepository.GetList();
return View();
}
public ActionResult States(string countryCode)
{
var states = _stateRepository.GetList(countryCode);
return Json(states);
}
public ActionResult Metros(string countryCode, string state)
{
var metros = _metroRepository.GetList(countryCode, state);
return Json(metros);
}
ビューでは、次の3つを持っていますDropDownLists、一つはViewDataを[「国」]オブジェクトにバインドされ、それは国の名前だと言う、あなたはこのようなAjaxの呼び出しでのjQueryでの状態を取得することができます:
$('#Countries').change(function() {
var val = $(this).val();
$states = $('#States');
$.ajax({
url: '<%= Url.Action('States') %>',
dataType: 'json',
data: { countryCode: val },
success: function(states) {
$.each(states, function(i, state) {
$states.append('<option value="' + state.Abbr+ '">' + state.Name + '</option>');
});
},
error: function() {
alert('Failed to retrieve states.');
}
});
});
大都市は、ドロップダウンを類推満たされることでしょう、国と州の選択の両方をサーバーに渡します。 dはメトロエリアの配列を持つJSONオブジェクトを取得します。
私はリポジトリの実装の詳細を省いただけで、サーバ上の結果変数を何らかの形で状態/メトロエリアのコレクションで埋めています。また、StateクラスにはAbbr(例: 'CA')と名前(カリフォルニアなど)の2つのプロパティがあると仮定しました。
私はそれがあなたを何らかの形で助け、少なくとも何とかあなたを解決策に導くことを願っています。
大変ありがとうございました。 はオプション値の前に<を付ける必要がありました.... – Michel
ああ、気付かなかった!ありがとう、私は私の答えを編集しました。 –
'json'を解析して' List 'のようなものを返さない場合、私は' states.d'を使う必要がありました。そうでなければ、プロパティは常に定義されていませんでした。 –
atconway