我有一个下拉列表框,其中一个值是其他值。我想将这些值移到最后。请帮我解决一下这个。我使用的代码如下
ddlAssetsCountryOthersone.DataSource = lstIMAssetsByCountryOthers;
ddlAssetsCountryOthersone.DataTextField = "AssetDescription";
ddlAssetsCountryOthersone.DataValueField = "AssetDescription";
ddlAssetsCountryOthersone.DataBind();
ddlAssetsCountryOthersone.Items.Remove(
ddlAssetsCountryOthersone.Items.FindByValue(
Constants.PhilosophyAndEmphasis.Other.ToString()));
如何将其他人添加回最后一个
的下拉列表中答案 0 :(得分:4)
在你的数据绑定之后试试这个:
ddlAssetsCountryOthersone.Items.Add(new ListItem("Others", "Others"));
顺便说一下,如果使用Insert方法,可以将所需的项目插入所需的位置。例如,下面的代码将“其他”选项添加到第4个订单:
ddlAssetsCountryOthersone.Items.Insert(4, new ListItem("Others", "Others"));
答案 1 :(得分:1)
如果您的下拉列表是数据绑定的,那么在DataBind()
调用后您将无法向控件中添加项目,如果您在调用DataBind()
之前添加它们,则无论如何都要清除它们。< / p>
您可以在数据绑定发生后使用Insert
或Add
,并且可以指定要插入的项目的索引。 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
进行必要的更改,并将该新对象返回为数据绑定。