在webform中验证

本文关键字:验证 webform | 更新日期: 2023-09-27 18:02:44

在我的web表单中,我有2个字段,应该只接受数字(其值的计算结果应显示在第三个字段。在用户单击提交按钮之前,这两个字段的RegularValidation工作正常。但不是之后。如何处理?

    <asp:TextBox ID="TextBox1" runat="server" placeholder="Liter"></asp:TextBox><span style="color:red;font-weight:bold"> *</span>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="This is required" ForeColor="Red"  ValidationGroup="test" ControlToValidate="TextBox1" Display="Dynamic"></asp:RequiredFieldValidator>
    <asp:RegularExpressionValidator ID="RegularExpressionValidator2" ControlToValidate="TextBox1" runat="server" ForeColor="red" ErrorMessage="Enter only numbers!" ValidationExpression="'d+" Display ="Dynamic"></asp:RegularExpressionValidator>

提交按钮:

 protected void btn_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
           TextBox3.Text = ((Convert.ToInt32(TextBox1.Text) * 4.18 * Convert.ToInt32(TextBox2.Text)) / 3600).ToString();
           double result = Convert.ToDouble(TextBox3.Text);
           TextBox3.Text = String.Format("{0:0.00}", result);

在webform中验证

您可以编写这样的函数/方法来传递TextBox

的值
public static bool isNumeric(string val, System.Globalization.NumberStyles NumberStyle)
{
    Int32 result;
    return Int32.TryParse(val, NumberStyle,
        System.Globalization.CultureInfo.CurrentCulture, out result);
}

调用并检查方法,例如传递以下

var _isNumeric2 = isNumeric("9.", System.Globalization.NumberStyles.Integer);

将第一个参数替换为TextBox3。文本值

所需要的就是添加与字段相同的ValidationGroup="test"。解决方案是:

    <asp:TextBox ID="TextBox1" runat="server" placeholder="Liter"></asp:TextBox><span style="color:red;font-weight:bold"> *</span>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="This is required" ForeColor="Red"  ValidationGroup="test" ControlToValidate="TextBox1" Display="Dynamic"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator2" ControlToValidate="TextBox1" runat="server" ForeColor="red" ErrorMessage="Enter only numbers!" ValidationExpression="'d+" ValidationGroup="test" Display ="Dynamic"></asp:RegularExpressionValidator>