【发布时间】:2012-09-22 19:26:46
【问题描述】:
我正在使用网格视图来显示大量数据。
数据源存储在会话中,因此我可以对网格视图进行分页/排序,而无需额外访问 SQL 服务器。
有没有更好的方法来对网格进行分页/排序,而不必在会话中存储数据?
【问题讨论】:
-
有多少用户使用您的应用程序?通常最好只选择您显示的内容。这意味着在 DataSource 中的 GridView 和中使用分页。假设您的 rdbms 是 SQL-Server,您可以使用
ROW_NUMBER函数对结果集进行分区。然后只选择您需要的切片(例如第 100-200 行)。大多数情况下,首先在数据库中而不是在服务器的内存中执行此操作更有效且可扩展。 -
@TimSchmelter: 200+ ... 一次检索甚至 10-15 行都需要一段时间。我宁愿检索完整的数据集并在 SQL 服务器之外处理分页。
-
需要“一段时间才能检索 10-15 行”这一事实可能表明存在更大的问题。
标签: c# asp.net vb.net gridview datasource