如何通过select value from listbox1 (by id),在asp.net c#…
的例子:
listbox1 (car name) : Fiat , subaro, honda
listbox2 (car type..after fiat selected at box1) : punto sx, punto gx. punto blabla-x (...)
listbox3 (car year...after type selected) : 2000-2002 (....)
listbox4 (items for the car that selected at lstbox1 2 and 3 .. : volta, wheel (...)
我有数据库(sql)表:CarName, CarType, CarYear, Items
谢谢!
一个简单的方法是将第二个列表框绑定到第一个列表框的selectedindexchanged事件中的一个变量。示例(本例中使用下拉列表框):
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
var x =
[LINQ query here]
DropDownList2.DataSource = x;
DropDownList2.DataTextField = "[fieldname]";
DropDownList2.DataValueField = "ID";
DropDownList2.DataBind();
}
如果你知道如何编写查询并将正确的字段分配给DataTextField(将显示在第二个列表框中的那个),你就设置好了。
试试AjaxControlToolkit控件
尝试SelectedIndexChanged
事件。只要确保你在标签中有id。以下是我最近(WinForms)的家庭作业编辑的一个例子:
private void lstCarName_SelectedIndexChanged(object sender, EventArgs e)
{
if (lstCarName.SelectedItems.Count > 0)
{
int CarId = (int)lstKlanten.SelectedItems[0].Tag;
MakeCarTypeListBox(id);
}
}
MakeCarTypeListBox可以看起来像这样:
private void MakeCarTypeListBox(int carId)
{
lstCarType.Items.Clear();
CarType[] carTypes = CarType.CarTypesByCarNameI(carId);
for (int i = 0; i < carTypes.Length; i++)
{
ListViewItem item = new ListViewItem(carTypes[i].Id.ToString());
item.SubItems.Add(carTypes[i].CarTypeName);
item.Tag = carTypes[i].Id;
lstDetail.Items.Add(item);
}
}
请记住,我使用的是WinForms和自制的实体类,所以你的代码可能会有所不同…