【问题标题】:Hide or Remove duplicate options in dropdownlist隐藏或删除下拉列表中的重复选项
【发布时间】:2019-01-02 15:15:53
【问题描述】:

我正在使用WebForms。在我的表单中,我有一个 dropdownlist 控件。有时Select 选项会在我的 from 中添加两次。如何删除此重复选项或隐藏它?

我尝试计算添加了多少次Select 选项然后隐藏它但没有成功。

之所以添加两次是因为grdview_Color_DataBound 被调用了两次。

    <select name="ctl00$MainContent$grdview_Color$ctl10$ddl_Grd_Color" id="MainContent_grd_ddl_grdview_Color" class="form-control dropdown">
       <option value="0" selected="selected" disabled="disabled">Select</option>
       <option value="0" disabled="disabled">Select</option>
       <option value="Yellow">Yellow</option>
       <option value="Red">Red</option>
       <option value="Blue">Blue</option>
       <option value="Green">Green</option>
    </select>


    protected void grdview_Color_DataBound(object sender, EventArgs e)
    {
        ListItem firstItem = new ListItem("Select", "0");
        firstItem.Attributes.Add("disabled", "disabled");
        ddl.DataSource = dataSource;
        ddl.DataTextField = TextField;
        ddl.DataValueField = ValueField;
        ddl.DataBind();
        ddl.Items.Insert(0, firstItem);
    }

【问题讨论】:

  • 您正在尝试解决症状而不是问题。您应该弄清楚额外选项是如何进入列表的。
  • 您需要显示您的标记以及您使用此代码的位置。
  • 可能在数据绑定前清除ddl?
  • 这不是原始标记 - 这是生成的标记。检查您使用的 aspx 或 ascx 文件。
  • 我检查了 Javascript 代码,发现有一段代码在附加 Select 选项并禁用它。谢谢你们的帮助:)

标签: c# html css asp.net


【解决方案1】:

一种天真的方法是将下拉列表中的项目存储在某种容器中,例如列表。清除下拉项目,然后循环遍历您的容器,仅将唯一项目添加回下拉项目列表,如下所示:

// Save the items
savedItems = dropDownItems.Items;

// Clear The items
dropDownItems.Items.Clear();

// Go through the container adding unique items to the drop down list
foreach (string item in savedItems){
    if (!dropDownItems.Items.Contains(item)) {
        dropDownItems.Items.Add(item);
    }
}

这种方式当然不是最好的方式,但是如果你赶时间的话,这是一种方式。

【讨论】:

    【解决方案2】:

    您需要将AppendDataBoundItems 属性设置为true 以保留DDL 中的现有值。您还需要确保您没有在每次回发时都这样做 - 您的代码示例不会显示您是否以及如何在 Page_Load() 方法中执行此操作。

    【讨论】:

    • 我会调查 AppendDataBoundItems。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 2012-03-11
    • 2014-10-20
    • 1970-01-01
    • 2015-10-29
    • 2016-05-12
    • 2023-03-05
    相关资源
    最近更新 更多