我有一个包含多个值的下拉列表。我有一个名为“其他”的列表项。选择其他时,我想生成一个带有必填字段验证器的文本框。我写得像这样:
标记:
<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>
代码隐藏:
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
事件。只有在重新加载页面后才能正常工作。
有什么问题?
答案 0 :(得分:4)
要将DropDownList
帖子发回服务器,您需要使用AutoPostback
属性,如下所示:
<asp:DropDownList ID="dl_test_name" runat="server"
OnSelectedIndexChanged="SelectedIndexChanged"
Height="22px" Width="103px" AutoPostBack="true">
答案 1 :(得分:3)
Arathy,在aspx中将下拉列表的AutopostBack属性设置为true