ASP.NET 2.0网格中的分页改进

tHe*_*SiD 1 .net c# asp.net datagrid datagridview

我目前有一个数据网格绑定到一个包含数万条记录的表.我使用现有的asp.net 2.0显示数据网格.我一次显示十条记录.

我的问题是每当我尝试访问下一页时,我从数据库中再次获取所有记录,然后显示所需的记录.这会减慢应用程序的速度..net 2.0中是否有功能可以帮助我优化此问题?我不能使用第三方控件或ajax.

更新我不能一次使用SQL来获取10条记录.在不改变任何现有业务逻辑或数据检索的情况下,我想这样做.

DOK*_*DOK 5

您可以在SQL和/或存储过程中进行分页.

基本上,您将sproc传递给页面上的项目数以及您所在的页面.例如,每页3页和20条记录.

如果您可以使用SQL Server 2005或更高版本,则可以使用一些更新的关键字来简化查询.

以下是此类查询的简单版本:

SELECT ClientName, RowNumber
FROM (SELECT ClientName, ROW_NUMBER() OVER (ORDER BY ClientName) AS RowNumber
FROM Clients) AS cl
WHERE RowNumber BETWEEN 12 AND 30
Run Code Online (Sandbox Code Playgroud)

您可以将"12"和"30"以上的值作为输入参数.

这样,您只返回要显示的行.

  • 那么你的问题没有答案.您可以更改业务逻辑以仅检索所需内容.或者处理你的应用程序将选择1000个项目到内存到页面的速度很慢的事实. (2认同)