2017-07-01 7 views
0

リピータのヘッダテンプレート内にあるチェックボックスにアクセスする必要があります。リピータヘッダテンプレートのチェックボックスを取得する

実際にはそれらは外部にあり、コードの背後には「this」というキーワードを使ってアクセスします。私はすべてのコードを変更することはできませんし、私は同じロジックを維持する必要があります。問題は、私がリピーターのヘッダーの中でチェックボックスを動かすと、 "this"を使ってそれらを見つけることができないということです。

<div id="containerListNotify" style="padding-left: 5px;"> 
        <asp:UpdatePanel ID="UpdatePanelRepListNotify" runat="server" UpdateMode="Conditional" ClientIDMode="Static"> 
         <ContentTemplate> 
          <asp:HiddenField ID="iconsHiddenField" runat="server" ClientIDMode="Static" /> 
          <asp:Repeater ID="repListNotify" runat="server" OnItemCommand="RepListNotify_ItemCommand" 
           OnItemDataBound="RepListNotify_ItemCreated"> 
           <HeaderTemplate> 
            <table id="tableCentroMessaggi" class="table table-hover"> 
             <thead> 
              <tr id="HeaderMessaggi"> 
               <th> 
                <%--<asp:Label runat="server" ID="docFascCol" Text='<%#this.getDocFascColText() %>' />--%> 
                <div class="dropdown"> 
                 <button onclick="openCloseDocFascDropdown()" class="dropbtn"><asp:Label runat="server" ID="docFascCol" Text='<%#this.getDocFascColText() %>' /><b class="caret"></b></button>            
                 <div id="docFascDropdown" class="dropdown-content"> 
                  <ul> 
                   <li> 
                    <asp:CheckBox ID="IndexCheckDoc" CssClass="clickableLeftN" Checked="true" runat="server" 
                     AutoPostBack="true" OnCheckedChanged="IndexCkbFilterObject_CheckedChanged" /> 
                   </li> 
                   <li> 
                    <asp:CheckBox ID="IndexCheckProj" CssClass="clickableLeftN" Checked="true" runat="server" 
                     AutoPostBack="true" OnCheckedChanged="IndexCkbFilterObject_CheckedChanged" /> 
                   </li> 
                   <li> 
                    <asp:CheckBox ID="IndexCheckOther" CssClass="clickableLeftN" Checked="true" runat="server" 
                     AutoPostBack="true" OnCheckedChanged="IndexCkbFilterObject_CheckedChanged" /> 
                   </li> 
                  </ul>                
                 </div> 
                </div> 
               </th> 
               <th> 

重要なことは、私もプライベートメソッドでそれらにアクセスする必要があるとイベントメソッドではないだけということです。

私はこのような何かをしました。

私はそこに解決策があることを願っています。私は "FindControl"を使うことができると思います。 この.aspxはMasterPageを使用します。

ありがとうございます。

+0

リピーター、GridViewなどの別のコントロール内にあるコントロールにアクセスするには、 'FindControl' withとitem/row indexを使用する必要があります。 'this'で直接アクセスすることはできません – VDWWD

+0

Repter HeaderTemplateにあります。私はそのアイテムを持っていない私的な方法でもそれらにアクセスしなければなりません。 – user3075478

答えて

0

リピーター、GridViewなどの別のコントロールの内部にあるコントロールにアクセスするには、FindControl withおよびitem/row indexを使用する必要があります。それらにアクセスする場所は重要ではありません。

CheckBox IndexCheckDoc = repListNotify.Controls[0].Controls[0].FindControl("IndexCheckDoc") as CheckBox; 
CheckBox IndexCheckProj = repListNotify.Controls[0].Controls[0].FindControl("IndexCheckProj") as CheckBox; 
CheckBox IndexCheckOther = repListNotify.Controls[0].Controls[0].FindControl("IndexCheckOther") as CheckBox; 
+0

それは、感謝しました! :D – user3075478

関連する問題