http://support.microsoft.com/kb/307710/zh-cn 不过我觉得这个办法不如楼上的好,第一是没有真正的分页,还是一次把所有的东西读到DataSet里边了,另外是DataGrid不可写了,添加记录不会被真正加到数据库。除非另外写代码。 另外,如果表里边有唯一自增索引,并且字段没有出现断号(其实,没有也可以自己加一列嘛!),则可以用如下简单方法分页: SELECT * FROM Talble WHERE Id BETWEEN @StartNumber AND @EndNumber
http://www.microsoft.com/china/MSDN/library/WebServices/ASP.NET/CreatingaPageableSortableDataGrid.mspx?mfr=true
System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dgProducts.CurrentPageIndex = e.NewPageIndex;
BindData();
}
能不能这样做啊:第X页的记录为:
1,逆序选 X*10 条记录 -> A
2,从A中选出前10条记录以上两步可以写成一句sql语句,我sql语法不熟,不会写.
比如显示第7页的记录,按上面的思想,就是:
逆序选出前70条记录(70,69,68...);
再选出前10条记录并排序(61,62,63...)有几点要改进一下:
1,记录总数不能被10整除,最后一页要特别处理(可以先判断一下);
2,当要显示的页数 > (总页数/2)时,可以调整一下, 加一个步骤,先将表逆序选一次(即从尾总开始选, 这样感觉上应该快一些);上面都只是我个人的想法,没有实际操作过,也希望有楼主可以验证一下,看看可不可行.
不过我觉得这个办法不如楼上的好,第一是没有真正的分页,还是一次把所有的东西读到DataSet里边了,另外是DataGrid不可写了,添加记录不会被真正加到数据库。除非另外写代码。
另外,如果表里边有唯一自增索引,并且字段没有出现断号(其实,没有也可以自己加一列嘛!),则可以用如下简单方法分页:
SELECT * FROM Talble WHERE Id BETWEEN @StartNumber AND @EndNumber
真是不好意思,写了那么多废话.
基本上都不是web的分页,LZ就看不出来吗?