我實現從 http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/jQuery用戶界面的Widget多選:回發後只剩下最後選擇的元素被選中
這個jQuery UI的多選我設法得到它在我的asp.net頁面中使用,但由於某種原因後回發,選定的文本只顯示最後一個檢查的元素。
這裏是我的代碼
$("document").ready(function() {
$("#ListBox1").multiselect({
noneSelectedText: 'Select',
selectedList: 200
});
$("#ListBox2").multiselect({
noneSelectedText: 'Select',
selectedList: 200
});
function GetSelectedListBox() {
var array_of_checked_values = $("#ListBox1").multiselect("getChecked").map(function() {
return this.value;
}).get();
var array_of_checked_values1 = $("#ListBox2").multiselect("getChecked").map(function() {
return this.value;
}).get();
$("#HiddenField1").val(array_of_checked_values);
$("#HiddenField2").val(array_of_checked_values1);
}
});
<body>
<form id="form1" runat="server">
<div style="font:12px Helvetica, arial, sans-serif;">
<asp:ListBox ID="ListBox1" runat="server"></asp:ListBox>
<asp:ListBox ID="ListBox2" runat="server"></asp:ListBox>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:HiddenField ID="HiddenField2" runat="server" />
</div>
<div>
<asp:Button ID="btn1" runat="server" Text="Press" OnClientClick="GetSelectedListBox();" onclick="btn1_Click" />
</div>
</form>
</body>
在我的服務器端代碼
ListBox2.DataSource = dt;
ListBox2.DataTextField = "Id";
ListBox2.DataValueField = "ListValue";
ListBox2.DataBind();
protected void btn1_Click(object sender, EventArgs e)
{
Response.Write(HiddenField1.Value);
Response.Write(HiddenField2.Value);
}
任何想法,爲什麼會只顯示最後選擇的元素,但有趣的這個在HiddenField的值是顯示「值1 ,值2,值3,值21「,而小部件盒僅顯示值21,並且僅當在回發之前檢查的所有元素在小部件中被檢查時僅值21消耗掉
謝謝