asp.net如何根据下拉列表选择设置文本框长度?C#
本文关键字:置文本 选择 net 何根 下拉列表 asp | 更新日期: 2023-09-27 18:19:48
下拉列表包含三个国家,如何根据所选国家设置在邮政编码文本框中输入的最小位数。例如,如果用户选择America,则邮政编码文本框应设置为"[0-9]{6}"。但如果他们选择澳大利亚,那么邮政编码应该是"[0-9]{4}"。
<asp:DropDownList ID="dropDownList" runat="server">
<asp:ListItem Value="-1">Country</asp:ListItem>
<asp:ListItem>America</asp:ListItem>
<asp:ListItem>Australia</asp:ListItem>
<asp:ListItem>Sweden</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidateCountry"
initialValue="-1"
ForeColor="Red"
runat="server"
ErrorMessage="Please choose Country"
ControlToValidate="dropDownList"/>
<asp:Label ID="Label1" runat="server" Text="PostCode"></asp:Label>
<asp:textbox id="TextBox1" runat="server" ></asp:textbox>
<asp:CustomValidator id="CustomValidator1" runat="server"
OnServerValidate="TextValidate"
ControlToValidate="TextBox1"
ErrorMessage="Invalid postcode.">
</asp:CustomValidator>
<asp:Button ID="BtnNext" runat="server" Text="Next" />
您可以在下拉列表的SelectedIndexChanged事件上执行此操作。在下拉列表中将AutoPostback设置为true,根据需要编写类似的描述逻辑。
private void dropDownList_SelectedIndexChanged(object sender, System.EventArgs e)
{
//your logic, something like that
if(dropDownList.SelectedText =="America")
{
TextBox1.MaxLength= your value ...
}
}
<asp:DropDownList ID="dropDownList" runat="server" AutoPostback = "true">
编辑:您可以使用预定义的值检查文本框的字符总数。
int minlength = 5;
if(textbox1.text.length < minlength)
{
//Flag error on validation label
}
else
{
//your stuff
}
您还有asp.net下拉列表的客户端事件。您可以设置一个javascript函数,以便在下拉选择发生更改时执行,而无需返回服务器。这将使体验更加精简,您可以直接使用jquery更改最小和最大长度。
你可以这样做:
DropDownList1.Attributes.Add("onChange", "return OnSelectedIndexChange();")