GridView分页,用什么方法高效,最好?我写的分页,发现每次都会与数据库交互一次,担心影响数据库性能

如题所述

第三方控件AspNetPager.dll
自己去下载个
使用方法:
先“添加引用”把AspNetPager.dll引用到bin中
后 在 前台上方添加 <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
在所需要的地方加上
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" ShowCustomInfoSection="Right" OnPageChanging="AspNetPager1_PageChanging" PageSize="25">
</webdiyer:AspNetPager>
后台加上:protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
Bind();//绑定的数据源

}
bing()中再加上: AspNetPager1.RecordCount = ds.Tables[0].Rows.Count;//获得总行数

PagedDataSource pds = new PagedDataSource();
pds.DataSource = ds.Tables[0].DefaultView;
pds.AllowPaging = true;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
pds.PageSize = AspNetPager1.PageSize;

GridView1.DataSource = pds;
GridView1.DataBind();
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-19
GridView里面的自带分页、是先把数据库中的数据全部查出来.如果在数据量小的时候建议用、如果数据量大的话.就利用缓存.存到一个虚拟表中.一次加载慢.但是之后就效率很高了.
第2个回答  2010-08-19
交互是一定要的啊。当然如果数据大的话,不建议使用gridview自带的分页功能。因为它是一次性加载完所有的数据。

比如100的路程,一次10米一次10米的跑肯定是很快的,用户等待的时间也很短暂。
第3个回答  2010-08-20
用aspnetpager吧

有各种样式,还好看
第4个回答  2010-08-24
如果担心影响性能的话,可以事先把数据库的表读到datatable里,然后把datatable绑到gridview里,这样就只是和内存中的表进行交互,不会涉及到数据库了
第5个回答  2010-08-25
要么把数据都读入内存,然后用Gridview自带的分页功能(空间换时间)
要么每次读取一页的数据。(时间换空间)
相似回答