2012-02-19 84 views
0

我有两个文本框,用户应该输入其中之一 我想使用一个验证器,其行为与必需验证器 一样,当用户按提交红色警报时写入对照 任何想法如何验证两个控件使用一个验证

在此先感谢

+1

为什么不使用两个验证器? – 2012-02-19 08:58:24

+0

因为它是正确的,如果用户插入任何一个文本框 我不能强迫他填写两个控件 – 2012-02-19 08:59:35

回答

1

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

尝试this

,或者你可以尝试使用后面的代码,并使用onclick事件来验证文本框,然后返回一个错误的跨度内,像这样:

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 
     } 
    } 
} 
+0

我没有得到这行代码,请你解释更多?! – 2012-02-19 09:02:09

+1

@omniaMm - 尝试使用我提供的代码隐藏示例。 – Wahtever 2012-02-19 09:06:24

+0

我已经通过JavaScript代码解决了,非常感谢:) – 2012-02-19 09:44:22

0

有2种方式来解决这个问题和他们都与我工作正常,我让客户来决定他喜欢哪一个,

1-使用的JavaScript在ASCX文件

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; 
       } 
    } 
} 

这个工作正确与我!

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; 
} 

只是ASIGN的args.IsValid p性能到你需要的价值。另一方面验证是在加载页面之前完成的,所以如果你点击了一个按钮来执行一个操作,比如读取数据库中的值以防万一是正确的,那么在该操作中需要包含以下检查。

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

args.IsValid是假的,然后Page.IsValid是假的了。希望这可以帮助

相关问题