none
Начинает казаться, что ASP.NET бесполезная вещь RRS feed

  • Вопрос

  • Иначе почему я не могу решить элементарную задачу - сделать ручной пейджинг.

    Для листания использую LinkButton, элементы DataPager не подходят из-за полной невозможности настройки шаблонов номеров страниц (например, если я хочу чтобы ссылка на страницу содержала мой html-код). LinkButton`ы создаются динамически из кода, и им назначаются события. Динамически потому, что надо знать сколько данных и размер страницы, отсюда число LinkButton'ов.

    Чтобы события работали для динамически созданных элементов, надо создавать их в Page_Load(). Созданные, например, в обработчике события ListView1_DataBound() LinkButton`ы событий не инициируют.

    Суть проблемы: я сделал переключатель PageSize, и после смены пользователем этого PageSize количество страниц меняется и надо пересоздать ссылки на страницы, в событии OnClick переключателя. Но к этому моменту Page_Load уже выполнится и делать это поздно. Если всё же сделать, то созданные LinkButton`ы не будут почему-то поддерживать события.

    Если вы знаете решение проблемы, пожалуйста, напишите.

    24 июля 2010 г. 13:31

Ответы

Все ответы

  • Если кажется - то креститься надо.
    24 июля 2010 г. 19:43
  • Спасибо за ответ, но о чём и речь: я не могу с помощью этих шаблонов сделать ссылки на страницы

    <div class="myclass"><a href=>1</a></div>

    <div class="myclass"><a href=>2</a></div>

    <div class="myclass"><a href=>3</a></div>

    <div class="myclass"><a href=>4</a></div>

    <div class="myclass"><a href=>5</a></div>

    Это по идее

    <asp:NumericPagerField 
    PreviousPageText="&lt; Prev 10"
    NextPageText="Next 10 &gt;"
    ButtonCount="10" />

    но он не поддерживает шаблоны. То есть он выводит каждую страницу в <span>, и всё тут.

    Вот эта вещь:

    <asp:TemplatePagerField>    
    <PagerTemplate>
    <b>
    Page
    <asp:Label runat="server" ID="CurrentPageLabel"
    Text="<%# Container.TotalRowCount>0 ? (Container.StartRowIndex / Container.PageSize) + 1 : 0 %>" />
    of
    <asp:Label runat="server" ID="TotalPagesLabel"
    Text="<%# Math.Ceiling ((double)Container.TotalRowCount / Container.PageSize) %>" />
    (
    <asp:Label runat="server" ID="TotalItemsLabel"
    Text="<%# Container.TotalRowCount%>" />
    records)
    <br />
    </b>
    </PagerTemplate>
    </asp:TemplatePagerField>

    выводится один раз, тоже не подходит.

     

     

     

     

     

     

     


    25 июля 2010 г. 4:23
  • Короче говоря не важно, подстроился под DataPager.
    • Помечено в качестве ответа EgorSandy 26 июля 2010 г. 5:51
    26 июля 2010 г. 5:51