У меня есть повторитель внутри дата-пейджера для отображения некоторых номеров страниц, я использую шаблонное поле пейджера, потому что там также есть и другие данные, и так как я хочу иметь возможность использовать его повторно, яВыделили его на пользовательский элемент управления, который встроен в пейджер данных.
Вот пейджер с пользовательским элементом управления
<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-50 из 167 <Назад 2 3 4 Далее>