如何使用一个验证器验证两个控件

时间:2012-02-19 08:55:26

标签: c# asp.net validation

我有两个文本框,用户应该输入其中一个 我想使用一个与Required Validator完全相同的验证器, 当用户按下提交控件所写的红色警报时 任何想法

提前致谢

4 个答案:

答案 0 :(得分:1)

没有内置的Validator可以做到这一点,你必须建立一个自定义的:

尝试this

或者您可以尝试使用后面的代码并使用onclick事件来验证文本框,然后在span中返回错误,如下所示:

    protected void Button1_Click(object sender, EventArgs e)
{
    if (TextBox1.Text == null) 
    {
        if (TextBox2.Text == null) 
        {
            errorMsg.InnerText = "Error" //use a span with runat server
        }
    }
}

答案 1 :(得分:0)

有两种方法可以解决这个问题,这两种方法都可以正常使用,我让客户决定他喜欢哪一种,

1-在ascx文件中使用JavaScript

当用户单击“提交”以执行服务器端验证时,

2-生成红色标签 这就是我用过的东西

aspx文件

<asp:Label ID="PhoneLbl" runat="server" Visible="false" style="color:Red">(***) Enter Either Phone Number or Mobile Number</asp:Label>
代码背后的

protected void Sc_submit_button_Click(object sender, ImageClickEventArgs e)
{
PhoneLbl.Visible = false;

if (Page.IsValid == true)
    {

            if (txt_phonenumber.Text != string.Empty || txt_mobilenumber.Text != string.Empty)
              {
                    // any code }
              }
           else 
              {
                Sc_submit_button.Enabled = true;
                PhoneLbl.Visible = true;
                MobileLbl.Visible = true;
                txt_phonenumber.Focus();
                return;
              }
    }
}

这项工作对我有用!!

答案 2 :(得分:0)

使用CustomerValidation控件

当您在页面中删除自定义验证时,可以将验证器链接到控件,但如果要对多个控件执行多个验证,则需要包含以下属性

 OnServerValidate="MyMethodOnServerSide" 

并在服务器端定义该方法

protected void MyMethodOnServerSide(object source, ServerValidateEventArgs args)
{
     if (string.IsNullOrEmpty(mytxt1.Text) &&
            string.IsNullOrEmpty(mytxt2.Text))
            {
                args.IsValid = false;
                return;
            }

            args.IsValid = true;
}

args.IsValid属性设置为您需要的值。另一方面,验证是在加载页面之前完成的,因此如果您单击一个按钮来执行操作,例如在一切正确的情况下从DB读取值,则需要在该操作上包含以下检查。

protected void cmdSearch_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
          LoadDataFromDB();
    }
}

args.IsValid为false时,Page.IsValid也为假。希望这有帮助

答案 3 :(得分:-1)

您可以使用自定义验证器执行此操作

按照本教程ASP.NET Custom Validator