2012-02-10 9 views
1

私はクライアント側のカスタム検証をしようとしています。私は私のaspxページに次のコードを持っているが、私はというエラーを取得しておくクライアント側のカスタムバリデーター

System.Web.HttpException(0x80004005が):コントロール「chkList_Counts」 「validationCheck」 が検証できないのControlToValidateプロパティで参照されます。 System.Web.UI.WebControls.BaseValidator.OnPreRenderで System.Web.UI.WebControls.CustomValidator.ControlPropertiesValid()で System.Web.UI.WebControls.BaseValidator.CheckControlValidationProperty(文字列 名、文字列プロパティ名)(で

で System.Web.UI.Control.PreRenderRecursiveInternal()でのEventArgs電子)私も自分のページを見ることができません。ページが表示される前にすぐにエラーが表示されます。

以下は私のコード

<div> 
      <asp:Panel ID="panel3" runat="server" CssClass="cis_edit_pnl" 
       GroupingText="Counts" Width="1240px"> 
       <asp:CheckBoxList ID="chkList_Counts" runat="server" 
        RepeatDirection="Horizontal" 
        RepeatColumns="3" Width="1060px"> 
       </asp:CheckBoxList> 
       <asp:CustomValidator ID="validationCheck" runat="server" ControlToValidate="chkList_Counts" ClientValidationFunction="check_checkBoxList" EnableClientScript="true" ErrorMessage="At least one of the check boxes should be checked"> 
       </asp:CustomValidator> 
     </asp:Panel> 
    </div> 

で、私のjavascriptの機能は、事前にこの

function check_checkBoxList(sender, args) { 
     debugger; 
     if (check_Counts() == false) { 
      args.IsValid = false; 
      return; 
     } 
     args.IsValid = true; 
     return; 
    } 

function check_casrepCounts() { 
     var control; 
     control = document.getElementById("<%=chkList_Counts.ClientID %>").getElementsByTagName("input"); 
     if (eval(control)) { 

      for (var i = 0; i < control.length; i++) { 
       if (control[i].checked == true) 
        return true; 
      } 
      return false; 
     } 
    } 

おかげのようなものです。

+0

「デバッガ」とは何ですか? – jrummell

+0

これは役立ちますhttp://codeclimber.net.nz/archive/2007/07/19/How-to-add-a-required-validator-to-a-CheckBoxList.aspx – jrummell

答えて

0

これで問題なく動作しました。私はcontrolToValidateを削除しなければなりませんでした。

関連する問題