我需要验证人的年龄,并且该字段应该是强制填写。此外,范围应该是2-3位。仅一个验证工作,但数据也存储,我不想。
<asp:TextBox ID="txtAge" value="number" runat ="server" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
<asp:RangeValidator ID="RangeValidator2"
ControlToValidate="txtAge"
MinimumValue="18"
MaximumValue="80"
Type="INTEGER"
EnableClientScript="false"
Text="The date must be between 18 and 80!"
runat="server" />
请帮我解决这个问题。
答案 0 :(得分:0)
例如:
<asp:RangeValidator ID="RangeValidatorAge" runat="server"
ErrorMessage="Age must be between 1 & 100"
MinimumValue="1" MaximumValue="100"
ControlToValidate="txtAge" Type="Integer"
ForeColor="Red" Display="Dynamic">
</asp:RangeValidator>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorAge"
runat="server" ErrorMessage="Age is required"
ControlToValidate="txtAge" ForeColor="Red"
Display="Dynamic" >
</asp:RequiredFieldValidator>
答案 1 :(得分:0)
因此您要禁用客户端验证,因此您使用了EnableClientScript="false"
。好的,但是你必须通过Page.Validate()
强制验证服务器端:
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
Page.Validate();
if (Page.IsValid)
{
// save your data
}
}
答案 2 :(得分:0)
使用ValidationGroup
<asp:TextBox ID="txtAge" value="number" runat ="server" OnTextChanged="TextBox1_TextChanged" ValidationGroup="ag"></asp:TextBox>
<asp:RangeValidator ID="RangeValidator2"
ControlToValidate="txtAge"
MinimumValue="18"
MaximumValue="80"
Type="INTEGER"
EnableClientScript="false"
Text="The date must be between 18 and 80!"
runat="server" ValidationGroup="ag" />
<asp:RequiredFieldValidator ID="RequiredFieldValidatorAge"
runat="server" ErrorMessage="Age is required"
ControlToValidate="txtAge" ForeColor="Red"
Display="Dynamic" ValidationGroup="ag">
</asp:RequiredFieldValidator>