我在数据管理器中有一个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="< 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 >" OnCommand="ChangePageCommand" CommandArgument="1" />
</p>
因此,不在转发器中的链接按钮工作正常,模板寻呼机字段接收PagerCommand事件,但是当点击转发器内的链接按钮时,它们会触发回发和它们自己的命令事件,但是PagerCommand事件在永远不会触发TemplatedPagerField。
这一点的重点是可重复使用的控制,其产生类似于25的25-50的寻呼值。上一页2 3 4下一页>
答案 0 :(得分:0)
永远不能让这个工作正常,而是用占位符替换转发器并动态添加链接按钮,大多数情况下这很好用。因此用户控件变为
<p class="pag">
<span class="pagerSummaryPages"><asp:Literal ID="SummaryLiteral" runat="server" /></span>
<asp:LinkButton ID="PreviousPageButton" runat="server" Text="< Previous" OnCommand="ChangePageCommand" CommandArgument="-1" />
<span>
<asp:PlaceHolder ID="LinksPlaceHolder" runat="server" />
</span>
<asp:LinkButton ID="NextPageButton" runat="server" Text="Next >" OnCommand="ChangePageCommand" CommandArgument="1" />
</p>
并在OnInit函数中添加了我的动态链接按钮。