我有3个下拉列表(未来可能更多)。
DropdownList1 is a parent and is populated from a database.
DropdownList2 is a child and is populated from the selected item from DropdownList1.
DropdownList3 is a child and is populated from the selected item from DropdownList2.
我想将所选项目添加到ListBox。
我遇到的问题是DropdownList2和DropdownList3可能并不总是有子项,所以要将项目添加到ListBox,我可以存储他们的ID但显示他们的文本。
我的数据库表有3列用于保存3个下拉列表中的值(ID)。
我的问题是,如果我在ListBox中显示项目的文本,下一步是将数据保存到表中的相关列中(因此第1列将保存来自DD1的数据,第2列将保存从DD2等)无论如何都要确定该项目属于哪个ID,以便我可以将正确的ID保存到正确的列中?
因此,用户从DD2中选择DD1项目2中的项目1,DD3中没有可用项目,因此他们单击“添加”将项目添加到ListBox。当我必须保存这个项目时,我怎么能区分添加的项目是DD2因此需要添加到Column2?或者有更好的方法吗?
希望这是有道理的
答案 0 :(得分:2)
列表框不喜欢存储多个值。但是,它们可以将对象存储为数据源。
首先创建一个自定义对象,然后将每个下拉列表中的值分配给对象:
首先声明自定义对象的新列表
List<myObject> list = new List<myObject>();
然后将其指定给您的按钮:
private void Button1_Click(object sender, EventArgs e)
{
myObject object = new myObject(Dropdown1, Dropdown2, Dropdown3);
list.Add(object);
//assign the list to the Listbox control
ListBox.Datasource = list;
}
如果要访问查询的值,请使用foreach
循环在列表中的对象上循环,并使用指针值访问每个对象。
foreach (myObject obj in list)
{
var val1 = list[obj].Dropdown1;
var val2 = list[obj].Dropdown2;
var val3 = list[obj].Dropdown3;
//enter your sql code here
}
如果您想进一步扩展,请告诉我。