サーバー側に移動し、他のドロップダウンリストに値を入力するボタンクリックイベントを使用しているという点で、jQuery multiselect を使用しています。ドロップダウン リストでチェックされた選択に基づいて、他のドロップダウン リストに値が入力されます。
問題:
たとえば、最初の jQuery 複数選択ドロップダウンで 3 つの値を選択し、これら 3 つの値に基づいてドロップダウンリストを閉じると、詳細は他の jQuery 複数選択ドロップダウンリストにフェッチされますが、最後にチェックされた値のみがチェックされ、保持されます。ボタンクリックイベントが原因で非同期ポストバックが発生し、値が保持されていないと思います。ボタンクリックイベントでそのポストバックを防ぐオプションはありますが、クリックを呼び出す必要がある場合は、値のみが保持されます。
これらについて、スクリーンショットを添付しています:
その3つの値に基づいて、他のドロップダウンリストにロードされますが、デフォルトの「選択」である「1が選択されました」と表示されます。
しかし、最初のドロップダウンリストでチェックされた値を取得できる2番目のドロップダウンリスト:
これは私のJavaScriptです:
$(document).ready(function () {
$('.department').multiselect({
show: ["bounce", 5], hide: ["blind", 1],
close: function () {
debugger;
var values = new Array();
$(this).multiselect("getChecked").each(function (index, item) {
values.push($(item).val());
});
$("input[id*=selectedValues]").val(values.join(","));
document.getElementById("<%=hdnDepartment.ClientID %>").value = values;
if (document.getElementById("<%=hdnDepartment.ClientID %>").value != "") {
**$("#<%=Button1.ClientID %>")[0].click();**
}
}
})
.multiselectfilter();
});
protected void Button1_Click(object sender, EventArgs e)
{
Populate();
}
間違っていたら訂正...