【问题标题】:Repeater inside Data Pager数据寻呼机内的中继器
【发布时间】:2011-07-09 00:27:18
【问题描述】:

我在数据分页器中有一个中继器来显示一些页码,我正在使用一个模板分页器字段,因为里面还有其他数据,并且因为我希望能够重复使用它,所以我已将其抽象为嵌入在数据分页器中的用户控件。

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

<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-50 of 167 的分页值

【问题讨论】:

    标签: asp.net repeater datapager


    【解决方案1】:

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

    <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 函数中添加了我的动态链接按钮。

    【讨论】:

      猜你喜欢
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多