2011-12-22 4 views
2

런타임에 리피터 제어에서 행을 재정렬 할 수 있습니까? 예 : 만약 내가 아래 그림과 같이 리피터 컨트롤을 가지고있다. 런타임에 항목 템플릿의 테이블 행 순서를 변경해야하는 경우 어떻게해야합니까? 마찬가지로 첫 번째 행의 특수 요청을 표시하고 두 번째 행의 이점을 얻은 다음 세 번째 행의 기본 설정을 정의 된 순서에 따라 표시해야합니다. 동적 중계기로 만들 수 있다는 것을 알고 있습니다. 그러나 다른 방법이 있습니까?리피터 제어의 항목 순서

<asp:Repeater ID="repGuestInformation" ClientIDMode="AutoID" runat="server" OnItemDataBound="repGuestInformation_ItemDataBound"> 
      <HeaderTemplate> 
       <table> 
      </HeaderTemplate> 
      <ItemTemplate> 
       <asp:Repeater ID="repGuestEventInformation" runat="server" OnItemDataBound="repGuestEventInformation_ItemDataBound"> 
        <%-- <HeaderTemplate> 


        </HeaderTemplate>--%> 
        <ItemTemplate> 
        <tr> 
          <td>Registrants</td> 
          <td></td> 
          <td><asp:Label ID="lblCost" runat="server" Text="Cost" /></td> 
          <td></td> 
        </tr> 
        <tr> 
          <td valign="top"> 
           <asp:Literal ID="ltlRegistrant" runat="server" /> 
           <asp:DropDownList ID="ddlGuest" runat="server" OnSelectedIndexChanged="ddlGuest_SelectedIndexChanged" AutoPostBack="true" /> 
           <asp:HiddenField ID="hfRegistrantName" runat="server" /> 
          </td> 
          <td> 
           <table> 
            <tr><td></td><td></td><td></td></tr> 
            <tr><td></td><td></td><td></td></tr> 
            <tr><td></td><td></td><td></td></tr> 
            <tr><td></td><td></td><td></td></tr> 
            <tr><td></td><td></td><td></td></tr> 
            <tr><td></td><td></td><td></td></tr> 
            <tr> 
             <td> 
             <%-- Benefits --%> 
             <asp:Label ID="lblConstituentBenefits" runat="server" Text="Benefits" ></asp:Label> 
             </td> 
             <td></td> 
             <td></td> 
            </tr> 
            <tr> 
             <td></td> 
             <td> 
              <asp:CheckBoxList ID="chkBoxListRegistrantBenefits" runat="server" AutoPostBack="true" 
               OnSelectedIndexChanged="chkBoxListRegistrantBenefits_SelectedIndexChanged" > 
              </asp:CheckBoxList> 
             </td> 
             <td></td> 
            </tr> 
            <tr> 
             <td> 
              <%-- Preference--%> 
              <asp:Label ID="lblConstituentPreference" runat="server" Text="Preference" ></asp:Label> 
             </td> 
             <td></td> 
             <td></td> 
            </tr> 
            <asp:Repeater ID="repEventPreference" runat="server" OnItemDataBound="repEventPreference_ItemDataBound"> 
             <ItemTemplate> 
               <tr> 
               <td></td> 
                <td> 
                  <asp:Literal ID="ltlEventPreference" runat="server" /> 
                  <asp:HiddenField ID="hfID" runat="server" /> 
                </td> 
                <td> 
                 <asp:DropDownList ID="ddlEventPreference" runat="server" AppendDataBoundItems="true" 
                  AutoPostBack="true" OnSelectedIndexChanged="ddlEventPreference_SelectedIndexChanged"> 
                 </asp:DropDownList> 
                </td> 
               </tr> 
             </ItemTemplate> 
            </asp:Repeater> 
            <tr> 
             <td> 
              <%-- Special Requests--%> 
              <asp:Label ID="lblConstituentSpecialRequest" runat="server" Text="Special Requests" ></asp:Label> 
             </td> 
             <td></td> 
             <td></td> 
            </tr> 
            <tr> 
             <td></td> 
             <td> 
              <asp:CheckBoxList ID="chkBoxListSR" runat="server" AutoPostBack="true" OnSelectedIndexChanged="chkBoxListSR_SelectedIndexChanged"> 
              </asp:CheckBoxList> 
             </td> 
             <td></td> 
            </tr> 
            <tr> 
             <td> 
              <asp:Panel ID="registrantAttPanel" runat="server" /> 
             </td> 
             <td></td> 
             <td></td> 
            </tr> 
           </table> 
          </td> 
          <td valign="top" style="padding-top:7px;"> 
          <asp:Literal ID="ltlCost" runat="server" /><asp:HiddenField ID="hfID" runat="server" /> 
          </td> 

          <td valign="top"> 
          <asp:Button ID="btnClearRow2" CausesValidation="false" runat="server" Text="CLEAR" OnClick="btnClearRow2_Click" /> 
          </td> 
         </tr> 
        </ItemTemplate> 
       </asp:Repeater> 
      </ItemTemplate> 
      <FooterTemplate> 
       </table> 
      </FooterTemplate> 
     </asp:Repeater> 

답변

5

리피터에 바인딩하면 바인딩 된 항목은 해당 리포지토리를 보유한 컬렉션의 순서대로 바인딩됩니다.

바인딩하기 전에 컬렉션의 순서를 바꿀 수 있습니다.

+0

컬렉션을 재정렬하려면 어떻게해야합니까? –

+0

@ user1075000 - http://stackoverflow.com/questions/3630687/how-to-sort-an-ienumerablestring – Oded

+0

기본적으로 두 개의 리피터가 리피터 내부에 순서가 있습니다. 첫 번째 행은 두 번째가 될 수 있고 두 번째 행은 첫 번째가 될 수 있습니다. –