2013-08-02 103 views
2

我試圖創建一個自定義驗證器來驗證複選框,並得到此錯誤: 「無法驗證」ControlValidator1「的ControlToValidate屬性所引用的」Control'cbVerify'「。自定義驗證器錯誤

這裏是前端代碼我對這個:

<li> 
    <asp:CheckBox ID="cbVerify" runat="server" Text="I certify that the information entered on this form is correct and accurate." /> 
</li> 
<li> 
    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Please check" Display="Dynamic" ControlToValidate="cbVerify" OnServerValidate="CustomValidator1_ServerValidate" CssClass="ValidationError"></asp:CustomValidator> 
</li> 

後端:

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) 
{ 
    args.IsValid = cbVerify.Checked ;  
} 

我能得到一些幫助搞清楚了這一點?

回答

3

取下CustomValidator1中的ControlToValidate值。它不需要在那裏複選框。

MSDN參考

使用ControlToValidate屬性指定輸入控件來驗證。此屬性必須設置爲除CustomValidator控件之外的所有驗證控件的輸入控件的ID,該控件可以留空。如果您沒有指定有效的輸入控件,則在呈現頁面時將引發異常。 ID必須引用與驗證控件相同的容器內的控件。它必須位於相同的頁面或用戶控件中,或者它必須位於模板化控件的相同模板中。 可以驗證標準控件包括:

  • System.Web.UI.WebControls.DropDownList
  • System.Web.UI.WebControls.FileUpload
  • System.Web.UI.WebControls.ListBox
  • System.Web.UI.WebControls.RadioButtonList
  • System.Web.UI.WebControls.TextBox
  • System.Web.UI.HtmlControls.HtmlInputFile
  • 小號ystem.Web.UI.HtmlControls.HtmlInputPassword
  • System.Web.UI.HtmlControls.HtmlInputText
  • System.Web.UI.HtmlControls.HtmlSelect
  • System.Web.UI.HtmlControls.HtmlTextArea
1

你不需要使用複選框使用時設置ControlToValidate屬性爲的CustomValidator和簡單地使用這個服務器驗證,如:

args.IsValid = cbVerify.Checked;