asp.net的下拉检查列表在每次回发中都会重复

时间:2012-07-31 13:32:05

标签: asp.net drop-down-menu

我正在使用dropdown-check-list插件创建一个允许多选的下拉列表。

然而,它在使用后在每个回发中都会重复,产生类似这样的内容:

enter image description here

有谁知道为什么会发生这种情况以及如何解决这个问题?

更新:关于显示某些代码的请求:

使用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();

3 个答案:

答案 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()中)