2013-10-18 37 views
1

我對我的網站的名稱字段進行了自定義驗證。在後面的代碼是它的代碼,但它不起作用。它不會像其他驗證器一樣給出錯誤。這是我的代碼。後面的自定義驗證碼

<asp:CustomValidator ID="CustomValidatorVoorNaam" runat="server" ControlToValidate="voornaamTextBox" onServerValidate="naamValidator" Display="Dynamic" ErrorMessage="Gebruik enkel het alfabet" ValidationGroup="AllValidators">Enkel A-Z</asp:CustomValidator> 

protected void naamValidator(object sender, ServerValidateEventArgs e) 
{ 
    bool check = true; 
    for (int i = 0; i > e.ToString().Length; i++) 
    { 
     if (!(char.IsLetter(e.ToString()[i]))) 
     { 
      check = false; 
     } 
    } 
    e.IsValid = check; 
} 

只要我能找到這是正確的代碼。

UPDATE

,當我進入它,而離開它空顯示錯誤

回答

0

我猜e.toString()將會返回e的作爲字符串類型,請嘗試使用值來代替

protected void naamValidator(object sender, ServerValidateEventArgs e) 
    { 
     bool check = true; 
     for (int i = 0; i > e.Value.Length; i++) 
     { 
      if (!(char.IsLetter(e.ToString()[i]))) 
      { 
       check = false; 
       break; 
      } 
     } 
     e.IsValid = check; 

    } 
+0

不,現在我改變了我的代碼。我調用另一個類的方法。所以我現在的代碼在代碼隱藏文件中看起來像這樣。 – Robin

+0

protected void CustomValidatorVoorNaam_ServerValidate(object source,ServerValidateEventArgs args) args.IsValid = Validatie.ControleerNaam(args.ToString()); } – Robin

+0

你是否在重新使用自定義驗證器之間重新使用驗證? –