在下拉列表框中添加新值

时间:2009-11-16 11:55:32

标签: c# .net asp.net drop-down-menu

我有一个下拉列表框,其中一个值是其他值。我想将这些值移到最后。请帮我解决一下这个。我使用的代码如下

ddlAssetsCountryOthersone.DataSource = lstIMAssetsByCountryOthers;
ddlAssetsCountryOthersone.DataTextField = "AssetDescription";
ddlAssetsCountryOthersone.DataValueField = "AssetDescription";
ddlAssetsCountryOthersone.DataBind();
ddlAssetsCountryOthersone.Items.Remove(
             ddlAssetsCountryOthersone.Items.FindByValue(
                Constants.PhilosophyAndEmphasis.Other.ToString()));

如何将其他人添加回最后一个

的下拉列表中

5 个答案:

答案 0 :(得分:4)

在你的数据绑定之后试试这个:

ddlAssetsCountryOthersone.Items.Add(new ListItem("Others", "Others"));

顺便说一下,如果使用Insert方法,可以将所需的项目插入所需的位置。例如,下面的代码将“其他”选项添加到第4个订单:

ddlAssetsCountryOthersone.Items.Insert(4, new ListItem("Others", "Others"));

答案 1 :(得分:1)

如果您的下拉列表是数据绑定的,那么在DataBind()调用后您将无法向控件中添加项目,如果您在调用DataBind()之前添加它们,则无论如何都要清除它们。< / p>

您可以在数据绑定发生后使用InsertAdd,并且可以指定要插入的项目的索引。 Insert用于在特定位置插入,Add将附加到底部,如您所示:

//after databind

//example with insert - (-1 as list is zero based)
ddlMyList.Items.Insert(noOfItems-1, "Other");

OR

//add
ddlMyList.Items.Add("Other");

答案 2 :(得分:1)

你可以尝试

ListItem li = new ListItem("text", "value");
    yourDropdown.Items.Insert(yourDropdown.Items.Count, li);

如果您在下拉列表中有5个项目,则它将返回5,因为插入索引从0开始

答案 3 :(得分:0)

或者:

ListItem li = ddlAssetsCountryOthersone.FindByValue(Constants.PhilosophyAndEmphasis.Other.ToString()));
ddlAssetsCountryOthersone.Remove(li);
ddlAssetsCountryOthersone.Add(li);

这应该有效,请测试 - 并根据JohnIdol的建议替换Add with Insert ...

答案 4 :(得分:0)

在数据绑定时,从数据绑定列表中添加/删除项目要比在数据绑定发生后添加/删除项目容易得多。

我会在lstIMAssetsByCountryOthers周围创建一个包装器,对新的IEnumberable进行必要的更改,并将该新对象返回为数据绑定。