ECSide基于数据库的分页、排序、过滤.docVIP

ECSide基于数据库的分页、排序、过滤.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ECSide基于数据库的分页、排序、过滤

ECSide基于数据库的分页、排序、过滤 首先ecside展现列表、排序、过滤(该三种操作以下简称为 RSF )的实现原理完全和原版EC一样, 如果您对原版EC的retrieveRowsCallback、sortRowsCallback、filterRowsCallback 非常熟悉,那么可以忽略此文. 先来简单介绍一下RSF操作方式. ecside对数据的展现操作有三种:分页展现,按列排序(目前只支持单列),按列过滤(支持多列联合过滤) (该三种操作以下简称为 RSF ) ecside提供了两种方式来实现RSF操作 : 基于java collection层 和 基于数据库层,下面先简单介绍一下原理: ========================================================= 一:基于java collection层: 这是ec的默认实现方式, 最简单易用. 您要做的就是将整个列表所要展现的全部数据放入collection 内,并交给EC来处理. 其中RSF操作,全部由EC在内存中完成,由于您已经将全部数据放入了collection中, 所以排序 过滤都是基于全部数据的. 您要在DAO中做的就是一个 查询操作,SQL语句中不需要加入 关于排序 分页 过滤的代码. 这种方式的优点非常明显:实现简单. 缺点同样明显,而且在很大程度上是致命的: 数据量大的时候速度慢,而且很可能outofmemery. 这时候我们就需要第二种方式了: 方式一您所要做的工作: 1 通过DAO,查询出所有的数据,放入collection内 2 将collection传给列表页面 二:基于数据库层: 在这种方式下,EC的角色发生了一点点变化. 此时,EC负责把 collection 里的内容展现出来, 同时会向您提供RSF相关的参数. 而这些参数需要您自己手动取得 并传入到DAO中(当然EC提供了很多方便的方法来帮助您取得这些参数), 具体功能的实现需要您自己在DAO中组织相应的SQL语句. 方式二您所要做的工作: 1 查询出所有的数据的总数 2 取得一个ECSide提供的Limit对象 3 在该对象的帮助下取得RSF操作的相关信息(如 数据的起止行数,排序的列和顺序,过滤的列和内容) 4 将RSF操作的相关信息传入DAO内,来进行SQL语句的拼装(或者其他的操作,如使用ORM工具时) 5 通过DAO,查询出当前页所要显示的数据,放入collection内 6 将collection传给列表页面 这种方式的优缺点正好和方式一相反. 关于两种方式的配置可以看一下 perties 文件中的下列内容 [code] table.filterRowsCcess=org.extremecomponents.table.callback.ProcessRowsCallback table.filterRowsCallback.limit=org.extremecomponents.table.callback.LimitCallback table.sortRowsCcess=org.extremecomponents.table.callback.ProcessRowsCallback table.sortRowsCallback.limit=org.extremecomponents.table.callback.LimitCallback table.retrieveRowsCcess=org.extremecomponents.table.callback.ProcessRowsCallback table.retrieveRowsCallback.limit=org.extremecomponents.table.callback.LimitCallback [/code] 其中 ProcessRowsCallback 采用了方式一 ,LimitCallback采用了方式二 而table.retrieveRowsCallback.default会告诉EC您默认使用的是哪个. 同样您也可以在 ec:table 标签里 指定 [code] ec:table filterRowsCallback=process/limit sortRowsCallback=process/limit retrieveRowsCallback=process/limit ... [/code] 大家可能还看到了 org.ecside.table.callback.CommonLimitCallback 这个是我自己随意组合出来的一个rowcallback 他在

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档