Добавление нового значения в раскрывающийся список - PullRequest
1 голос
/ 16 ноября 2009

У меня есть выпадающий список, в котором одно из значений должно быть другим. Я хочу переместить эти значения до последнего. Пожалуйста, помогите мне с этим. Код, который я использую, выглядит следующим образом

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

Как я могу добавить остальных обратно в выпадающий список за последний

Ответы [ 5 ]

4 голосов
/ 16 ноября 2009

попробуйте после привязки данных:

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

Кстати, если вы используете метод «Вставить», вы можете вставить нужный элемент в нужную вам позицию. Например, приведенный ниже код добавляет опцию Другое к 4-му порядку:

ddlAssetsCountryOthersone.Items.Insert(4, new ListItem("Others", "Others"));
1 голос
/ 16 ноября 2009

вы можете попробовать как

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

Если в выпадающем списке 5 элементов, будет возвращено 5, поскольку индекс вставки начинается с 0

1 голос
/ 16 ноября 2009

Если у вас выпадающий список привязан к данным, вы не сможете добавлять элементы в свой элемент управления после вызова DataBind(), и если вы добавите их до того, как они будут удалены, в любом случае, когда вы звоните DataBind().

Вы можете использовать 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");
0 голосов
/ 16 ноября 2009

При привязке данных гораздо проще добавлять / удалять элементы из списка, для которого привязана база данных, чем добавлять / удалять элементы после привязки данных.

Я бы создал оболочку вокруг lstIMAssetsByCountryOthers, которая вносит необходимые изменения в новый IEnumberable и возвращает этот новый объект для привязки к данным.

0 голосов
/ 16 ноября 2009

Или:

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

Это должно сработать, пожалуйста, проверьте - и замените Add на Insert согласно предложению JohnIdol ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...