jquery を使用して、チェックボックスのリストを動的に作成しています。ただし、エラーが発生した場合は、チェックボックスの状態を保持する必要があります。
私はこれを機能させていますが、少しぎこちないようです:投稿されたフォームから値を取得し、それをviewstateに入れ、viewstate varの値を非表示フィールドに入れ、jsで非表示フィールドの値を取得し、それをに分割します配列、ID を比較する配列を反復処理します。
私のコントローラーで:
if (ModelState.IsValid)
{
... stuff ...
}
else
{
ViewData["cbHack"] = Request.Form["cb_name"];
}
私からしてみれば:
<%= Html.Hidden("cbHack",ViewData["cbHack"]) %>
そしてJavaScript:
$(document).ready(function() {
$("#TriggerDDL option:selected").each(function() {
$.getJSON('/controller/action/id', function(data, status) {
var foo = '<p>';
var selected = $('#cbHack').val().split(",");
if (data.length > 0) {
for (x in data) {
var d = data[x];
foo += "<input type='checkbox' name='cb_name' value='" + d.id + "'";
for (var s in selected) {
if (d.id == selected[s]) {
foo += " checked ";
$("#submit").removeAttr("disabled");
}
}
foo += ">" + d.text;
foo += "<br/>";
}
cb += "</p>";
$("#DynFoo").html(foo);
}
});
});
});
これはどのように改善できますか?