ASP.NET Web 控件下拉列表对象填充
Posted
技术标签:
【中文标题】ASP.NET Web 控件下拉列表对象填充【英文标题】:ASP.NET web control drop down list object population 【发布时间】:2018-12-15 02:11:00 【问题描述】:我正在使用 ASP.NET 创建带有可变控件的动态 Web 表单。我想要创建的一些控件是下拉列表,我希望它们填充某些自定义子项。我怎样才能做到这一点?我无法用子项本身填充 ddl(它们不是字符串类型),但也无法在不丢失整个子项的情况下用字符串成员变量(subitem.displayName)填充 ddl。以下是一些代码供参考:
public class SubItem
string displayName;
string value;
...
一开始我尝试直接将对象添加到ddl:
DropDownList x;
x.ItemType = SubItem; //error "type not valid in this context"
x.Add(subitem); // error
理想情况下,我可以通过在 ddl 中显示 subitem.name 来解决这个问题,但要解析子项的功能,以便在事件处理程序中访问所有子项的属性。是否存在类似以下内容?
DropDownList x;
x.ItemType = SubItem;
x.DisplayType = SubItem.displayName;
x.Items.Add(subitem);
提前致谢!
【问题讨论】:
【参考方案1】:您只能绑定具有和IEnumerable
接口的DropDownList。类似于列表或数组。
//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;
【讨论】:
谢谢!如果我想稍后遍历下拉列表并访问对象,这可能吗?当我尝试时,它说“listItems 无法转换为 SubItem” 不,你不能。它变成了一个ListItem
对象。您必须使用 DDL 的 SelectedValue 创建一个新的SubItem
。以上是关于ASP.NET Web 控件下拉列表对象填充的主要内容,如果未能解决你的问题,请参考以下文章
如何将 javascript 与 asp.net 下拉列表控件一起使用?
如何从现有 SQL DB ASP.Net MVC 4 在下拉列表中填充数据
来自 web api 的 asp.net web 表单下拉列表