Как показать значение в listbox2, выбрав значение из listbox1 (по id) c # - PullRequest
0 голосов
/ 18 апреля 2011

Как отобразить значение ListBox, выбрав значение из списка1 (по идентификатору), на 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

спасибо!

Ответы [ 3 ]

1 голос
/ 18 апреля 2011

Самый простой способ - привязать второй список к переменной var в событии 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 (того, которое будет отображаться во втором списке), все готово.

0 голосов
/ 18 апреля 2011

Попробуйте событие SelectedIndexChanged. Просто убедитесь, что у вас есть идентификатор в теге. Вот пример, отредактированный из недавнего домашнего задания (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 и самодельные классы сущностей, поэтому ваш код, вероятно, будет несколько другим ...

0 голосов
/ 18 апреля 2011

Попробуйте это Элемент управления AjaxControlToolkit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...