2012-02-19 80 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是假的了。希望這可以幫助

相關問題