2013-09-07 5 views
2

У меня есть раскрывающийся список с несколькими значениями. У меня есть элемент списка под названием «Другое». При выборе другого я хочу сгенерировать текстовое поле с обязательным полевым валидатором. Я написал так:добавление опции для выпадающего списка

Markup:

<asp:DropDownList ID="dl_test_name" runat="server" 
        OnSelectedIndexChanged="SelectedIndexChanged" 
        Height="22px" Width="103px"> 
    <asp:ListItem>Science</asp:ListItem> 
    <asp:ListItem>Maths</asp:ListItem>   
    <asp:ListItem>Other</asp:ListItem> 
</asp:DropDownList> 
<asp:TextBox ID="tb_other" runat="server" Width="94px" Visible="False"> 
</asp:TextBox> 
<asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" 
          ControlToValidate="tb_other" ErrorMessage="*"> 
</asp:RequiredFieldValidator> 

Code-за:

protected void SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DropDownList dropDownList = (DropDownList)sender; 
    if (dropDownList.SelectedValue == "Other") 
    { 
     tb_other.Enabled = true; 
     tb_other.Text = string.Empty; 
     tb_other.Visible = true; 
    } 
    else 
    { 
     tb_other.Enabled = false; 
     tb_other.Text = dropDownList.SelectedValue; 
    } 
} 

но при выборе любого элемента списка, управление не идет SelectectedIndexChanged события. Только после перезагрузки страницы это работает.

В чем проблема?

ответ

3

Arathy, сделать AutoPostBack свойства раскрывающегося списка истины в ASPX

+0

ооо, я забыл Это. Спасибо ! @ Анкур Карл Андерсон – ARATHY

4

Чтобы сделать свой DropDownList пост обратно на сервер, вам нужно использовать AutoPostback свойства, например:

<asp:DropDownList ID="dl_test_name" runat="server" 
        OnSelectedIndexChanged="SelectedIndexChanged" 
        Height="22px" Width="103px" AutoPostBack="true"> 
Смежные вопросы