我正在使用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);
谢谢!
答案 0 :(得分:0)
您只能绑定具有和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; }
}