如何在下拉列表中显示隐藏文本框selectedindexchanged事件?

时间:2011-11-05 03:46:07

标签: asp.net textbox drop-down-menu

我正在学校项目网站上创建一个注册表。我已经提供了一个安全问题的下拉菜单,如果用户想要输入他自己的问题,他/她可以选择其他问题,然后文本框会显示我默认设置了visible=false

我尝试使用此代码,但它无法正常工作是否有任何我遗漏的东西。

protected void selectques_SelectedIndexChanged(object sender, EventArgs e)
{
    if (selectques.Text == "Other")
    {
        alterquestion.Visible = true;
    }   
}

DROPDOWNLIST:

<asp:DropDownList ID="selectques" runat="server" Height="25px" Width="254px" OnSelectedIndexChanged="selectques_SelectedIndexChanged">
    <asp:ListItem>Select a question?</asp:ListItem>
    <asp:ListItem> What is your pet name?</asp:ListItem>
    <asp:ListItem>Who is your first teacher?</asp:ListItem>
    <asp:ListItem>Which is your favourite movie?</asp:ListItem>
    <asp:ListItem>Whom you like most in your life?</asp:ListItem>
    <asp:ListItem>Other</asp:ListItem>
</asp:DropDownList>

隐藏文字框:

<asp:TextBox ID="alterquestion" runat="server" Height="20px" Width="250px" Visible="false"></asp:TextBox>

2 个答案:

答案 0 :(得分:2)

您需要使用:

if (selectques.SelectedItem.Text == "Other")

应该做的伎俩

答案 1 :(得分:2)

DropDownList.Text属性为SelectedValue提供了DropDownList。但根据您的列表项,没有值字段

您需要检查selectques.SelectedItem.Text属性以查找ListItem,或者您可以在列表项中添加值字段。

<asp:ListItem
    Text="Other"
    Value="Other"
/>

修改

将DropDownList AutoPostBack设置为true

<asp:DropDownList ID="selectques" AutoPostBack= "True" runat="server" Height="25px" Width="254px" OnSelectedIndexChanged="selectques_SelectedIndexChanged">