将多个项目/对象添加到ListBox

时间:2016-02-04 12:57:57

标签: c# asp.net vb.net listbox

我有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?或者有更好的方法吗?

希望这是有道理的

1 个答案:

答案 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
}

如果您想进一步扩展,请告诉我。