Повторитель внутри Data Pager - PullRequest
0 голосов
/ 09 июля 2011

У меня есть повторитель внутри дата-пейджера для отображения некоторых номеров страниц, я использую шаблонное поле пейджера, потому что там также есть и другие данные, и так как я хочу иметь возможность использовать его повторно, яВыделили его на пользовательский элемент управления, который встроен в пейджер данных.

Вот пейджер с пользовательским элементом управления

<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 из 167 <Назад 2 3 4 Далее>

1 Ответ

0 голосов
/ 12 июля 2011

Никогда не мог заставить это работать правильно, вместо этого заменил повторитель на Placeholder и динамически добавил к нему кнопки ссылки, по большей части это работает довольно хорошо.Таким образом, пользовательский элемент управления стал

<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 добавил к нему мои кнопки динамической ссылки.

...