0
我有一個列表框,我已經應用了一個Chosen jquery插件。所以在頁面加載我去DB和綁定項目。這工作正常,所有的自動完成功能等,然後我更新這些值到數據庫。在Multiselect asp列表框中設置選定的項目(使用jQuery插件 - 選擇)
當我reaload此項目時,我想採取以前保存的值,並使其成爲選定的項目。
我可以得到ListItems我需要將選定的屬性設置爲true。但是當我嘗試下面的代碼時,什麼都沒有發生箱子是空的,沒有物品被選中。我怎麼能這樣。有沒有辦法從後面的C#代碼中解脫出來?
foreach (ListItem li in mySelectedListItemCollection)
{
if (li.Selected)
{
ddlMultiSelect.Items.FindByValue(li.Value).Selected = true
}
}
我的控制看起來像
<%@ Control Language="C#" CodeBehind="Edit.ascx.cs" blah blah %>
<asp:ListBox ID="ddlMultiSelect" SelectionMode="Multiple" data-placeholder="Choose…" class="chosen-select" multiple Style="width: 350px;" runat="server">
</asp:ListBox>
<form>
<script type="text/javascript">
var config = {
'.chosen-select': {},
'.chosen-select-deselect': { allow_single_deselect: true },
'.chosen-select-no-single': { disable_search_threshold: 10 },
'.chosen-select-no-results': { no_results_text: 'Oops, nothing found!' },
'.chosen-select-width': { width: "95%" }
}
for (var selector in config) {
$(selector).chosen(config[selector]);
}
</script>
</form>
<header>
<script type="text/javascript">
$(document).ready(function() {
$("#<%=ddlMultiSelect.ClientID %>").change(function() {
var arr = $(this).val();
if (typeof arr === 'object' && arr instanceof Array) {
document.getElementById('<%=lbltest.ClientID%>').value = arr.toString();
}
else { document.getElementById('<%=lbltest.ClientID%>').value = ""; }
console.log(arr)})
});
</script>
</header>
基本上在DataBound事件我想重置其保存在數據庫中選擇的項目。 PS:我用的獲選1.3,ASP.NET提前4.0
感謝
'ddlMultiSelect.SelectedIndex = ddlMultiSelect.Items.IndexOf(ddlMultiSelect.Items .FindByValue(li.Value));'給那個鏡頭 – prospector