DropDownList.SelectedItem.Text всегда является первым элементом в DropDownList C # - PullRequest
1 голос
/ 22 октября 2019

Я создал каскадный выпадающий список.

Это первый ddl:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack ="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Text="-- Select One --"></asp:ListItem>
<asp:ListItem Text="Game"></asp:ListItem>
<asp:ListItem Text="Book"></asp:ListItem>

2-й элемент ddl добавляется на основе элемента, выбранного в ddl1 (OnSelectedIndexChanged)

3-й элемент dll добавляется на основе элемента, выбранного в ddl2 (OnSelectedIndexChanged)

У меня есть проблема, которая возникает, когда я использую DropDownList3.SelectedItem.Text, он всегда возвращает мне первый элемент (CSGO или Dota на основе каждого выбора), ddl1 и ddl2 прекрасно работают для меня.

Вот функция ddl2:

   protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList3.Visible = true;
        if (DropDownList2.SelectedValue == "A")
        {
            DropDownList3.Items.Clear();
            DropDownList3.Items.Insert(0, new ListItem("-Select-", "N"));
            DropDownList3.Items.Insert(1, new ListItem("CSGO", ""));
            DropDownList3.Items.Insert(2, new ListItem("CSO", ""));
            DropDownList3.Items[0].Attributes["disabled"] = "disabled";
        }
        else if (DropDownList2.SelectedValue == "B")
        {
            DropDownList3.Items.Clear();
            DropDownList3.Items.Insert(0, new ListItem("-Select-", "N"));
            DropDownList3.Items.Insert(1, new ListItem("Dota", ""));
            DropDownList3.Items.Insert(2, new ListItem("LoL", ""));

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

Я успешно сделал это с помощью selecteditem.value, которому я присваиваю значение, и оно работает, интересно, почему selecteditem.text не работает.

0 голосов
/ 22 октября 2019

Я подозреваю, что ваша проблема в том, что вы отключаете первый элемент, поэтому он становится недоступным для выбора.

Попробуйте без этой строки и посмотрите, отличаются ли ваши результаты.

DropDownList3.Items[0].Attributes["disabled"] = "disabled";
...