私はListBox
MVCで作成しています:
@Html.ListBoxFor(model => model.SelectedItemIds, new SelectList(Model.Items, "Value", "Text"))
これは正常に動作ListBox
し、ビューに表示されます。
ユーザーがリスト内の項目をクリックして選択したときに、ある種のコールバックを追加したいと考えています。MVC3 を使用してこれを行うにはどうすればよいですか?
私はListBox
MVCで作成しています:
@Html.ListBoxFor(model => model.SelectedItemIds, new SelectList(Model.Items, "Value", "Text"))
これは正常に動作ListBox
し、ビューに表示されます。
ユーザーがリスト内の項目をクリックして選択したときに、ある種のコールバックを追加したいと考えています。MVC3 を使用してこれを行うにはどうすればよいですか?
このオーバーロードを使用して、javascript onChange ハンドラーを追加できます。
@Html.ListBoxFor(model => model.SelectedItemIds, new SelectList(Model.Items, "Value", "Text"), new{onchange="onListBoxChanged(); return false;"})
onListBoxChanged() は JavaScript 関数です。
このようなことができます
@using(html.begainform( ........your action name........))
{
@Html.ListBoxFor(model => model.SelectedItemIds, new SelectList(Model.Items, "Value", "Text"))
}
&jqueryでは、このようなものを書くことができます
$("<Id or class of your ListBox>").change(function() {
this.form.submit();
});
ListBox に id パラメーターを追加し、jQuery を使用して必要なコールバックを実行することで、おそらく最適なサービスが提供されるでしょう。コード行は次のようになります。
@Html.ListBoxFor(model => model.SelectedItemIds, new SelectList(Model.Items, "Value", "Text"), new {id = "MyListBox")
その後、次のように jQuery でイベントを簡単にフックできます。
$('#MyListBox').change(function() { ...some function... } );