Gridview中的datakeys可否获得全部行的ID?
Gridview中的datakeys似乎只有当前页的ID集合,例如,一页显示20行,DataKeys取值只有[0]-[19],假设Gridview共有50条记录,怎样全部...
Gridview中的datakeys似乎只有当前页的ID集合,
例如,一页显示20行,DataKeys取值只有[0]-[19],
假设Gridview共有50条记录,怎样全部取值呢?
我想过一个笨办法:先将PAGESIZE取个大值,就能获得了,
再将PAGESIZE=20,正常显示。
但缺点是:一点排序,就又乱了,只能重新绑定,
不知有啥好办法。
我的目的是这样,先说说程序结构:
1、将数据库查询中的数据主要字段显示在GRIDVIEW中,如时间、地点、人物....
2、双击某一行后显示另一个网页,展示全部详细信息
3、在新的页面不用返回到列表,就可以直接“上一条、下一条”翻页
我也知道数据库是实际上集合,没有顺序的概念,上、下条的概念只是用户在GRIDVIEW中感官上的体验。
以在GV中显示的逻辑顺序进行上下翻页自认为很完美。
当然可以绑定之前的数据集中取得“行号-ID”的对应值,但用户一点GV中标题栏排序,就不相符了。
所以最好的结果就是取得全部行的“行号-ID”对应表,排序时都跟着变。 展开
例如,一页显示20行,DataKeys取值只有[0]-[19],
假设Gridview共有50条记录,怎样全部取值呢?
我想过一个笨办法:先将PAGESIZE取个大值,就能获得了,
再将PAGESIZE=20,正常显示。
但缺点是:一点排序,就又乱了,只能重新绑定,
不知有啥好办法。
我的目的是这样,先说说程序结构:
1、将数据库查询中的数据主要字段显示在GRIDVIEW中,如时间、地点、人物....
2、双击某一行后显示另一个网页,展示全部详细信息
3、在新的页面不用返回到列表,就可以直接“上一条、下一条”翻页
我也知道数据库是实际上集合,没有顺序的概念,上、下条的概念只是用户在GRIDVIEW中感官上的体验。
以在GV中显示的逻辑顺序进行上下翻页自认为很完美。
当然可以绑定之前的数据集中取得“行号-ID”的对应值,但用户一点GV中标题栏排序,就不相符了。
所以最好的结果就是取得全部行的“行号-ID”对应表,排序时都跟着变。 展开
3个回答
展开全部
个人认为,在设置PageSize时,程序自身实际上是进行了分页操作的,也就是在进行显示的时候事实上只是显示的当前页的数据,因此,就算你改了PageSize的值,当数据量达到一定程度的时候,还是不管用。
这里就有另外的问题了,如果你之前使用的是DataSet,那么可以通过遍历DataSet中的表获取数据,没必要那么纠结,非得在一棵树上吊死,反正数据已经取出来了。但是如果你的数据量大的话,就可能得损失一点点性能了。如果你使用的是DataReader的话,索性在从数据库中区吧。呵呵
不知道,你是不是必须从GridView中取呢,如果是的话,我也没有什么好的建议了?
如果解决了问题,贴个简单的思路让大家都学习学习。Good Luck!
这里就有另外的问题了,如果你之前使用的是DataSet,那么可以通过遍历DataSet中的表获取数据,没必要那么纠结,非得在一棵树上吊死,反正数据已经取出来了。但是如果你的数据量大的话,就可能得损失一点点性能了。如果你使用的是DataReader的话,索性在从数据库中区吧。呵呵
不知道,你是不是必须从GridView中取呢,如果是的话,我也没有什么好的建议了?
如果解决了问题,贴个简单的思路让大家都学习学习。Good Luck!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主的最终目的是不是要在新打开的显示详细页面中有上一条和下一条选项,然后上一条和下一条对应GridView中的排序,那么我提供一个思路吧,将行号-ID保存于一个hashtable中,然后使用Session或Cookies保存这个hashtable,在详细页面中就可以通过当前页面使用的数据id来找这个id在hashtable中相邻的id,根据找到的id就可以轻松实现上一条下一条翻页了~~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不该在Gridview中排序,而在数据读取时就已经把顺序排好。
select * from table order by id desc;
上一条:select min(id) from table where id > (this.id) order by id desc;
下一条:select max(id) from table where id < (this.id) order by id desc;
select * from table order by id desc;
上一条:select min(id) from table where id > (this.id) order by id desc;
下一条:select max(id) from table where id < (this.id) order by id desc;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询