【问题标题】:How does pagination work in ASP.NET(Using VB.NET)?分页如何在 ASP.NET(使用 VB.NET)中工作?
【发布时间】:2010-09-24 18:14:13
【问题描述】:

我知道如何创建和填充数据表,我已经完成了。现在,我只想在 web 表单上显示数据表,但我也想知道如何对其进行分页和排序。最终我不想将它绑定到数据网格或网格视图。我想自己学习如何以编程方式执行此操作。

你能告诉我如何在不使用 datagrid 或 gridview 的情况下显示、分页和排序这个数据表吗?

谢谢!

【问题讨论】:

    标签: asp.net vb.net datatable


    【解决方案1】:

    理想的分页是在数据库级别完成的。为此,您创建一个可能带有两个参数的 SP。一个是没有。您想在每页上显示的记录数,而另一个参数则不会。您的用户所在的页面。

    例如 - 如果您的用户位于第 1 页并且每页记录为 20,则从您的数据库中检索行 ID 为 1 到 20 的记录。如果用户想要查看第 3 页,则检索第 41 到 60 行。如果您的 SQL 表中没有唯一标识符,那么您将不得不在 ROW_NUMBER() 函数的帮助下使用内部查询。以下是使用 SQL Server ROW_NUMBER() 函数进行分页的链接。

    http://www.davidhayden.com/blog/dave/archive/2005/12/30/2652.aspx

    除了这个逻辑,您还可以组合排序。这可能是您的 SP 的第三个参数。您可以先以任何方式对数据进行排序,然后取出适当的页面。

    【讨论】:

      【解决方案2】:

      首先您必须将数据存储到会话对象/视图状态/缓存中

      然后根据您的要求生成 table/ div 并使用循环为 no。您要在屏幕上显示的记录数 * 当前页面编号 +1。(当前页面编号,您必须存储在视图或隐藏字段中)

      对于排序使用标题上的链接(使用带有链接的表头),然后使用 Linq 进行排序。 (对数据进行排序后,您必须替换会话对象/视图状态/缓存对象) 您可以使用列名生成标题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-02
        • 1970-01-01
        • 1970-01-01
        • 2021-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-18
        相关资源
        最近更新 更多