2012-11-13 47 views
0
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace WebApplication3 
{ 
    public partial class WebForm1 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 


      if (IsPostBack) 
       CustomValidator1.Validate(); 
     } 

     protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) 
     { 
      if (RadioButton1.Checked == false && RadioButton2.Checked == false) 
       args.IsValid = false; 
      else 
       args.IsValid = true; 

     } 




    } 
} 

這是我用來編程我的服務器端自定義驗證程序的代碼。我無法理解這是如何工作的,因爲如果我將它從IsPostBack「if」中取出,它將在摘要中顯示,當我啓動頁面時,但是當我單擊按鈕時它不起作用。任何人都知道什麼可能是錯的?asp.net自定義驗證程序與單選按鈕

同樣作爲一些附帶信息,在這種類型的驗證方面,服務器端和客戶端驗證之間的主要區別是什麼?

+0

當你說「這行不通」時,會發生什麼?它是否提交併且不向您顯示驗證消息?還是根本不提交? –

+0

此外,當你說「當我點擊一個按鈕」時,你是否仍然指IsPostBack「if」被刪除的情況? –

回答

1

服務器端和客戶端驗證(除了顯而易見的)之間的最大區別是客戶端驗證可以防止您甚至提交頁面。服務器端驗證只發生在頁面提交後。

將它們混合可以產生這樣一種情況,即用戶填寫了所有字段,使所有內容都具有正確的長度和值,然後點擊提交 - 然後當頁面返回時,會有更多驗證消息!

+0

謝謝,但你能提出一個解決我的主要問題? –

+0

@AndrewB我很樂意,但如果你能在評論中回答我的問題,這將有所幫助。 –

+0

我知道什麼是錯的,我修復了大部分的問題,基本上我有一個JavaScript準備就緒,它的工作原理,但我想知道如何發送有關單選按鈕的信息給javascript函數 –