【问题标题】:Validation in webform网络表单中的验证
【发布时间】:2016-08-17 16:03:34
【问题描述】:

在我的网络表单中,我有 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);

【问题讨论】:

标签: c# asp.net webforms


【解决方案1】:

你可以写一个这样的函数/方法来传递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.Text 值

【讨论】:

  • 谢谢@MethodMan,但是应该检查TextBox1和TextBox2!
  • 然后进行适当的检查/调用,如果可行,有几种方法可以处理此问题,然后将其标记为可接受的答案。您可以更改方法以使用任何文本值
【解决方案2】:

只需添加与字段相同的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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    相关资源
    最近更新 更多