Настройте ASP.Net DataPager, сгенерированный HTML

Если какая-либо функциональность класса тесно связана с каким-либо интерфейсом в этой ситуации, мы объявляем класс внутри интерфейса.

Некоторое время также полезно обеспечить реализацию по умолчанию абстрактного метода внутри интерфейса.

6
задан Donnie Thomas 17 June 2009 в 17:15
поделиться

1 ответ

Вы можете использовать PagerTemplate для обозначения разметки, которую вы хотите использовать для управления разбиением по страницам. Я не совсем уверен, что вы пытаетесь сделать с точки зрения отображения информации подкачки в виде ul / li, но этого должно быть достаточно, чтобы вы пошли по правильному пути. Извините за код, уходящий в сторону ...

пример:

<asp:DataPager ID="DataPager1" runat="server" PagedControlID="gridInvoiceHistory"
            PageSize="20">
            <Fields>
                <asp:TemplatePagerField>
                    <PagerTemplate>
                        Page
                        <asp:Label runat="server" ID="labelCurrentPage" Text="<%# Container.TotalRowCount > 0 ? (Container.StartRowIndex / Container.PageSize) + 1 : 0 %>" />
                        of
                        <asp:Label runat="server" ID="labelTotalPages" Text="<%#  Math.Ceiling ((double)Container.TotalRowCount / Container.PageSize) %>" />
                    </PagerTemplate>
                </asp:TemplatePagerField>

РЕДАКТИРОВАТЬ: вот более подробное начало решения для этого:

<asp:TemplatePagerField>
     <PagerTemplate>
          <asp:BulletedList ID="listPages" runat="server" 
               DisplayMode="LinkButton" onclick="listPages_Click">
          </asp:BulletedList> 
     </PagerTemplate>
</asp:TemplatePagerField>

И вот что у вас будет в коде программной части:

protected void listPages_Click(object sender, BulletedListEventArgs e)
        {
            var pageNo = int.Parse((sender as BulletedList).Items[e.Index].Text);
            var startIndex = (pageNo - 1) * DataPager1.PageSize;
            DataPager1.SetPageProperties(startIndex, DataPager1.PageSize, true);
        }

Вам остается выполнить привязку данных маркированного списка к методу, который получает счетчик страниц и возвращает список IEnumerable текста, который вы хотите использовать для ссылок на страницы. Стандартное предупреждение: это пример кода, и его, вероятно, не следует использовать в производственной среде без тщательной проверки! :

8
ответ дан 10 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: