如何在c#中的asp.net中添加多个验证

时间:2015-04-02 13:43:12

标签: asp.net webforms

我需要验证人的年龄,并且该字段应该是强制填写。此外,范围应该是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" />

请帮我解决这个问题。

3 个答案:

答案 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>