0

我正在使用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();
4

3 回答 3

1

我认为你已经在页面加载时加载了下拉列表而不使用回发事件。这就是为什么它每次都绑定的原因。

use page_load()
{
  if(!ispostback)
  {
     //load your dropdown here
  }    
}
于 2012-07-31T13:40:56.210 回答
0

如果您仍然有问题,我不知道。我刚刚遇到了类似的问题,下拉列表在每次回发后都会重复。这解决了我的问题

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();
  }

我希望这有帮助!

于 2012-09-18T16:37:44.087 回答
0

您调用 load 函数两次,从而获得两个下拉菜单。一旦注册...add_endRequest(load_lazyload)并再次明确。我猜如果你删除对它的调用add_endRequest会修复它(毕竟,你已经把它包裹起来了$(document).ready()

于 2013-08-15T17:16:33.627 回答