asp.net - 自定义 ASP.Net DataPager 生成的 HTML

标签 asp.net datapager

我在我的 Web 项目中使用 ListView 和 DataPager 进行分页。它工作正常,但生成的分页 HTML 只是一个包含一些超链接的范围。

我想自定义 HTML 并在无序列表中显示链接 (ul)。

有人知道如何做到这一点吗?我能想到的一种方法是 CSSFriendly 适配器,但如果有更简单的方法,我不想这样做。

编辑:有人可以帮助我完成在模板中创建控件所需的确切步骤吗?抱歉,我很愚蠢,但尽管进行了大量的谷歌搜索,我还是无法弄清楚这一部分。

最佳答案

您可以使用 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 列表的方法,对项目符号列表执行数据绑定(bind)。标准警告:这是示例代码,未经彻底审查可能不应该在生产环境中使用! :)

关于asp.net - 自定义 ASP.Net DataPager 生成的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/987386/

相关文章:

c# - 在我的 .aspx 页面上循环遍历 SQL Server 结果

c# - 将文本框值传递给 gridview

c# - 索引器属性的 Linq 表达式

c# - 具有多个项目的 ConfigurationSection

c# - ASP.net编译项目错误

silverlight - 在 Silverlight 4 中创建 MVVM DataPager 的好方法是什么?

c# - 如何从后台代码动态生成 ListView 和 DataPager?

c# - 格式化 asp :DataPager to show in ul li

c# - 获取DataPager控件中点击的页面数

c# - 当页码 = 1 时在 GridView 中隐藏 datapager