我正在使用dropdown-check-list插件创建一个允许多选的下拉列表。
然而,它在使用后在每个回发中都会重复,产生类似这样的内容:
有谁知道为什么会发生这种情况以及如何解决这个问题?
更新:关于显示某些代码的请求:
使用Javascript:
$(document).ready(function () {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(load_lazyload);
load_lazyload();
...
}
function load_lazyload() {
$("#ContentPlaceHolder1_userControl1_listBoxMultiValueNumbers").dropdownchecklist();
...
}
C#:这就是listBox的填充方式:
listBoxMultiValueNumbers.DataTextField = ds.Tables[0].Columns["number"].Caption;
listBoxMultiValueNumbers.DataValueField = ds.Tables[0].Columns["number"].Caption;
listBoxMultiValueNumbers.DataSource = ds;
listBoxMultiValueNumbers.DataBind();
listBoxMultiValueNumbers.Items.Insert(0, new ListItem("Select numbers", "-1"));
UpdatePanelUCCNFT.Update();
答案 0 :(得分:1)
我认为你已经在页面加载时加载你的下拉列表而不使用回发事件..这就是为什么它每次都绑定..
use page_load()
{
if(!ispostback)
{
//load your dropdown here
}
}
答案 1 :(得分:0)
如果你还有问题,我不会。我刚遇到类似的问题,dropdownlist在每次回发后都会重复。这解决了我的问题
fillDropDownList()
{
String selectValue = DropDownList.SelectedValue();
DropDownList.Items.Clear(); // to clear the duplicates
DropDownList.SelectedValue = selectValue; // to restore previously selected value
DropDownList.Items.Insert("0", New ListItem(" Select ", ""));
DropDownList.DataBind();
}
在page_load
中if (Page.IsPostBack)
{
fillDropDownList();
}
我希望这有帮助!
答案 2 :(得分:0)
你正在调用加载函数两次,因此得到两次下拉。一旦在...add_endRequest(load_lazyload)
注册并再次明确注册。我猜你是否删除了对add_endRequest
的调用它会修复它(毕竟,你已经把它包裹在$(document).ready()
中)