然后将为DataGrid对象编写代码来使用分页技巧
DataGrid的AllowPaging
AllowCustomPaging
PageStyle属性有助于记录用户的访问状态
首先设定AllowCustomPaging为True
我们使用SQLDataReader来装载DataGrid对象
据性能测试表明
在构建列表显示数据时
使用SQLDataReader比使用DataSet要快两倍以上
为了追求性能最佳化设定DataGrid的EnableViewState属性为false因为这样在每次与Web服务器打交道时就不必再在viewstate中存储内容了
当DataGrid不在viewstate中进行保存需要添加导航按钮来帮助用户进行导航
那么在页面上增加两个按钮上一页和下一页要进入下一页就在下一页按钮上增加click事件通过自定义分页存储过程请求相应的记录例如如果第一页由第条到第条记录组成那么要导航到第二页我们就向存储过程的@StartRow传递参数向@StopRow传递参数即可要返回到第一页@StartRow和@StopRow分别为和
在这里使用VBNET编写下一页事件
Private Sub ButtonNext_Click (ByVal sender As Object _
ByVal e As SystemEventArgs) Handles ButtonNextClick
viewstate(StartRow) = viewstate(StartRow) + dgridPageSize
viewstate(StopRow) = viewstate(StartRow) + dgridPageSize
运行存储过程返回SQLDataReader
dgridDataSource = RunSprocReturnDR (textSt_lnameText textSt_fnameText viewstate(StartRow)viewstate(StopRow))
dgridDataBind()
End Sub
在上面的例子中viewstate中保存的只是@StartRow和@StopRow的信息这比在viewstate中保存整个DataGrid对象高效的多
结束语
以上程序是在SQL Server 实现的但对于其他关系型数据库同样适用比如ORACLE等等列表显示信息的性能对浏览者的访问是很重要的设计不好的列表显示会大大降低应用程序的性能不管它的后端数据库是多么快速使用自定义分页技术可以避免DataGrid默认分页机制带来的缺陷在NET框架的强大沖击下ASPNET已成为新一代网站开发的主流技术因此本文讨论的技术很具有实用价值
[] [] [] []