数据寻呼机内的中继器

时间:2011-07-09 00:27:18

标签: asp.net repeater datapager

我在数据管理器中有一个Repeater来显示一些页码,我正在使用模板化的寻呼机字段,因为里面还有其他数据,因为我希望能够重复使用它,我已将其抽象出嵌入数据寻呼机的用户控件。

这是带有用户控件的寻呼机

<asp:DataPager ID="MessagesDataPager" SkinID="AdminCorrespondenceDataPager" PagedControlID="MessagesListView" runat="server">
    <Fields>
        <asp:TemplatePagerField OnPagerCommand="Pager_OnPagerCommand">
            <PagerTemplate>
                <uc:ListViewPager Id="Pager" runat="server" />
            </PagerTemplate>
        </asp:TemplatePagerField>
    </Fields>
</asp:DataPager>

这是用户控件

<p class="pag">
    <span class="pagerSummaryPages"><asp:Literal ID="SummaryLiteral" runat="server" /></span>
    <asp:LinkButton ID="PreviousPageButton" runat="server" Text="&lt Previous" OnCommand="ChangePageCommand" CommandArgument="-1" />
    <span>
        <asp:Repeater ID="PageLinksRepeater" OnItemDataBound="PageLinksRepeater_OnItemDataBound" runat="server">
            <ItemTemplate>
                <asp:LinkButton ID="PageLink" CssClass="pageLink" runat="server" OnCommand="ChangePageCommand" />
            </ItemTemplate>
        </asp:Repeater>
    </span>
    <asp:LinkButton  ID="NextPageButton" runat="server" Text="Next &gt;" OnCommand="ChangePageCommand" CommandArgument="1" />
</p>

因此,不在转发器中的链接按钮工作正常,模板寻呼机字段接收PagerCommand事件,但是当点击转发器内的链接按钮时,它们会触发回发和它们自己的命令事件,但是PagerCommand事件在永远不会触发TemplatedPagerField。

这一点的重点是可重复使用的控制,其产生类似于25的25-50的寻呼值。上一页2 3 4下一页>

1 个答案:

答案 0 :(得分:0)

永远不能让这个工作正常,而是用占位符替换转发器并动态添加链接按钮,大多数情况下这很好用。因此用户控件变为

<p class="pag">
    <span class="pagerSummaryPages"><asp:Literal ID="SummaryLiteral" runat="server" /></span>
    <asp:LinkButton ID="PreviousPageButton" runat="server" Text="&lt Previous" OnCommand="ChangePageCommand" CommandArgument="-1" />
    <span>
        <asp:PlaceHolder ID="LinksPlaceHolder" runat="server" />
    </span>
    <asp:LinkButton  ID="NextPageButton" runat="server" Text="Next &gt;" OnCommand="ChangePageCommand" CommandArgument="1" />
</p>

并在OnInit函数中添加了我的动态链接按钮。