50分求解

yybb520 2005-07-31 09:38:43
小弟不才,现在项目做到查询出,结果碰到了一个很郁闷的问题,我现在在页面上显示数据采用dataGrid分页显示,但是我们现在想做出当点某一列的列名时,就按这一列所对应的字段进行排序就像EXCEL中的那种效果,还是的B/S模式下实现,而且我不想点一次就查数据库,对中间件操作也好,总之不重新生成数据集,那样系统开销就大了,哪位高手实现过呢?还望指点! ̄
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimu8130 2005-07-31
  • 打赏
  • 举报
回复
如果不每次取,只有放在缓存了,还得及时更新
极客行天下 2005-07-31
  • 打赏
  • 举报
回复
我想只能依靠缓存了。
cr327 2005-07-31
  • 打赏
  • 举报
回复
网上有一个UltraDataGrid源代码 就是写的像windows文件夹 那种排序 做的很不错

不每次查数据库的方法 是把数据暂存在服务器Application里 即Cache里
每次访问先从Cache中找 如果有数据就从Cache中输出数据
如果没有再访问数据库 每次访问数据库后把提取出来的数据存在Cache里

当然要设置Application.TimeOut 到了Timeout Cache数据就作废了 不能总让数据占内存啊
ChengKing 2005-07-31
  • 打赏
  • 举报
回复
如下方法,不但从缓存中取数据,
而且还会可以使翻页后继续维持第二页的排序,例如:显示学生成绩并从大到小排序
第一页显示了1~10条记录,那第二页应该显示11~12条记录,并维持排序
要想导航栏一直显示,必须得绑定所有的数据,除非自定义一个翻页控件.
我这里是用的DataGrid的翻页功能


第一次从数据库中取数据,并把DataSet和排序关键字一起保存在DataView中,以后都从DataView中取数据.并重新给DV.Sort赋值缓存保存中的排序表达式
然后,将this.DataGrid.CurrentPage = e.NewPage; 即可了

就会实现:
第一页显示: 100,90,80,65;
翻页后,
第二页继续显示: 50,45,30,20了

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧