Порядок элементов в управлении повторителем

Можно ли изменить порядок строк в управлении повторителем во время выполнения. например: если у меня есть управление повторителем, как показано ниже. Что делать, если мне нужно изменить последовательность строк таблицы в шаблоне элемента во время выполнения. Например, мне нужно показать особые запросы в первой строке, затем преимущества во второй строке, а затем предпочтения в третьей строке в соответствии с определенной последовательностью. Я знаю, что могу сделать это, сделав его динамическим повторителем. Но есть ли другой способ?

 <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>

person Shankar Das    schedule 22.12.2011    source источник


Ответы (1)


При привязке к повторителю связанные элементы будут привязаны в том порядке, в котором они находятся в коллекции, содержащей их.

Вы можете изменить порядок коллекции перед привязкой.

person Oded    schedule 22.12.2011
comment
как переупорядочить коллекцию? - person Shankar Das; 22.12.2011
comment
В основном у меня есть два переупорядочивания строк внутри повторителя. например, первый ряд может быть вторым, а второй ряд иногда может быть первым. - person Shankar Das; 22.12.2011
comment
@user1075000 user1075000 - Повторитель просто отражает данные в коллекции. Если вам нужно изменить порядок, сделайте это в коллекции перед повторной привязкой. - person Oded; 22.12.2011
comment
@Oded- У вас есть пример для этого? Не получаю вашего ответа. Мне просто нужно изменить порядок строк в шаблоне элемента повторителя в соответствии с последовательностью. - person Shankar Das; 22.12.2011
comment
@ user1075000 - Вы привязываете последовательность к повторителю, верно? Переупорядочить последовательность. Вы читали ссылку, которую я дал? - person Oded; 22.12.2011
comment
@Oded- да, но на самом деле это не то, что мне нужно. - person Shankar Das; 22.12.2011
comment
@ user1075000 - Вам нужно будет объяснить лучше, так как я не понимаю, что вам нужно. Почему бы не отредактировать свой вопрос и не добавить к нему больше деталей? Такие вещи, как где происходит переупорядочение (сервер/клиент), как вы хотите, чтобы это работало и т.д... - person Oded; 22.12.2011
comment
Я отредактировал свой вопрос. В основном мне нужно настроить макет повторителя во время выполнения, не делая повторитель динамическим. - person Shankar Das; 23.12.2011