Население выпадающего списка веб-элемента управления ASP.NET
Я использую ASP.NET для создания динамической веб-формы с переменными элементами управления. Некоторые из элементов управления, которые я хочу создать, являются выпадающими списками, и я хотел бы, чтобы они были заполнены определенными пользовательскими подпунктами. Как я могу это сделать? Я не могу заполнить ddl самими подэлементами (они не имеют строкового типа), но я также не могу заполнить ddl строковой переменной-членом (subitem.displayName) без потери всего подэлемента. Вот код для справки:
public class SubItem
{
string displayName;
string value;
...
}
Сначала я попытался добавить объекты в ddl напрямую:
DropDownList x;
x.ItemType = SubItem; //error "type not valid in this context"
x.Add(subitem); // error
В идеале, я мог бы решить эту проблему, отображая subitem.name в ddl, но с функциональностью анализируемого подэлемента, чтобы в обработчике событий я мог получить доступ ко всем свойствам подэлемента. Существует ли что-то вроде следующего?
DropDownList x;
x.ItemType = SubItem;
x.DisplayType = SubItem.displayName;
x.Items.Add(subitem);
Заранее спасибо!
1 ответ
Вы можете только связать что-то сделать DropDownList, который имеет и IEnumerable
интерфейс. Как список или массив.
//create a new list of SubItem
List<SubItem> SubItems = new List<SubItem>();
//add some data
SubItems.Add(new SubItem() { displayName = "Test 1", value = "1" });
SubItems.Add(new SubItem() { displayName = "Test 2", value = "2" });
SubItems.Add(new SubItem() { displayName = "Test 3", value = "3" });
//create the dropdownlist and bind the data
DropDownList x = new DropDownList();
x.DataSource = SubItems;
x.DataValueField = "value";
x.DataTextField = "displayName";
x.DataBind();
//put the dropdownlist on the page
PlaceHolder1.Controls.Add(x);
С классом
public class SubItem
{
public string value { get; set; }
public string displayName { get; set; }
}