【问题标题】:Item Order in Repeater Control中继器控件中的项目顺序
【发布时间】:2012-01-25 23:49:12
【问题描述】:

是否可以在运行时重新排序转发器控件中的行。例如:如果我有中继器控制,如下所示。如果我必须在运行时更改项目模板中表的行顺序怎么办。就像我需要在第一行显示特殊要求,然后在第二行显示好处,然后根据定义的顺序在第三行显示偏好。我知道我可以通过使其成为动态中继器来做到这一点。但是有没有其他办法?

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

【问题讨论】:

    标签: asp.net repeater


    【解决方案1】:

    当您绑定到中继器时,绑定的项目将按照它们在包含它们的集合中的顺序进行绑定。

    您可以在绑定之前重新排序集合。

    【讨论】:

    • 如何重新排序收藏?
    • 基本上我有两个重新排序中继器内的行。比如第一行可以是第二行,第二行可以是第一行。
    • @user1075000 - 转发器仅反映集合中的数据。如果您需要重新排序,请在重新绑定之前对集合执行此操作。
    • @Oded- 你有什么例子吗?我没有得到你的答案。我只需要根据序列重新排序转发器项目模板中的行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多