Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7621339 建立时间:2006年5月29日 |

| |
[eXtremeComponents]使用eXtremeTable的分页特性 软件技术, 电脑与网络
lhwork 发表于 2006/6/28 11:30:37 |
以使用Struts为例,说明一下如何使用eXtremeTable的分页特性
这一切都可以在Action中完成,在Action会用到JSP中eXtremeTable的table标签的属性'tableId'
和'item','tableId'用于完成eXtremeTable的分页,'item'用于返回你分页的结果集,不多不少,刚好是你需要查看的那一页
的结果集,比如说,你一页是10条记录,那你访问第20页的时候,'item'的结果集就只有第201条到第210条记录.还有就是在request中加
入totalRows的属性,表示本次查询结果的数量
另外,JSP的中,eXtremeTable的table标签要retrieveRowsCallback属性,将该属性设为
org.extremecomponents.table.callback.LimitCallback,这是它默认的分页回调类,你也可以写自已的回
调类.设置了该默认的回调类以后,你在Action里就需要向request加入totalRows属性,值为你的查询结果总记录数,这样才会产生翻页的
效果.
现在就你的DisplayAction中加分页的特性了,如下:
Limit limit = LimitFactory.createInstanceOfLimit(request, TABLEID);LimitFactory.setLimitPageAndRowAttr(limit,PAGE_SIZE,TOTAL_SIZE);
这里的TABLEID就是JSP页上标签的属性tableId, PAGE_SIZE是你一页的记录数,TOTAL_SIZE是你查询数据的总数
然后设置totalRow属性,它的值被要求为Integer类型的,转换一下:
request.setAttribute("totalRows",new Integer(TOTAL_SIZE));
将分页后的结果集(一页的内容)放到request的resultList(此为JSP中item属性设置的值)属性中去:
request.setAttribute("resultList", getTestData(limit.getCurrentRowsDisplayed(),limit.getPage()));
上面得到分页数据的函数原形为getTestData(int pageSize,int paget),通过指定一页的记录数和第几页来获得所需的数据,这可以根据数据库的分页特性,或者通过滑动游标的方式来得到,这里不再傲述.
以下为部分代码:
JSP部分:
<ec:table items="resultList" var="item" tableId="youTableId" retrieveRowsCallback="org.extremecomponents.table.callback.LimitCallback" filterRowsCallback="org.extremecomponents.table.callback.LimitCallback" sortRowsCallback="org.extremecomponents.table.callback.LimitCallback" action="${pageContext.request.contextPath}/DisplayAction.do" imagePath="${pageContext.request.contextPath}/images/table/*.gif" title="TEST" width="100%" rowsDisplayed="10" sortable="false" filterable="false" > <ec:column property="name" title="姓名"/> <ec:column property="nickName" title="别名"/></ec:table>
Action部分代码:
Limit limit = LimitFactory.createInstanceOfLimit(request, TABLEID);LimitFactory.setLimitFilterAndSortAttr(limit);LimitFactory.setLimitPageAndRowAttr(limit,PAGE_SIZE,TOTAL_SIZE);request.setAttribute("resultList",getTestData(limit.getCurrentRowsDisplayed(),limit.getPage()));request.setAttribute("totalRows",new Integer(TOTAL_SIZE));
这样就可以了,相信这也不是很难的东东吧,已经比较详细了,大家应该很容易看懂吧.500)this.width=500'>500)this.style.width=500;">
哦,对了,还有,标签里的rowDisplayed属性要和Action中的PAGE_SIZE一致,不然会有问题... |
|
回复:使用eXtremeTable的分页特性 软件技术, 电脑与网络
笔记(游客)发表评论于2009/12/15 13:10:36 |
total_size 是如何得到的呢?为什么不把dao也放上来呢? |
|
回复:使用eXtremeTable的分页特性 软件技术, 电脑与网络
笔记(游客)发表评论于2009/12/15 13:10:34 |
total_size 是如何得到的呢?为什么不把dao也放上来呢? |
|
回复:使用eXtremeTable的分页特性 软件技术, 电脑与网络
笔记(游客)发表评论于2009/12/15 13:10:33 |
total_size 是如何得到的呢?为什么不把dao也放上来呢? |
|
回复:使用eXtremeTable的分页特性 软件技术, 电脑与网络
笔记(游客)发表评论于2009/12/15 13:10:33 |
total_size 是如何得到的呢?为什么不把dao也放上来呢? |
|
回复:使用eXtremeTable的分页特性 软件技术, 电脑与网络
actionf (游客)发表评论于2007/10/4 12:44:59 |
|
回复:使用eXtremeTable的分页特性 软件技术, 电脑与网络
乖乖兔(游客)发表评论于2007/7/30 17:38:55 |
你好啊~~楼主,我想请问你Limit limit = LimitFactory.createInstanceOfLimit(request, TABLEID);此句对吗?LimitFactory接口内没有createInstanceOfLimit这个方法啊。。是不是你写错了?最好以后有完整的code~~ |
|
回复:使用eXtremeTable的分页特性 软件技术, 电脑与网络
小二(游客)发表评论于2007/3/12 22:13:26 |
你好 我在用webwork + springside + hibenater
开发项目,里面使用extremecomponents组件进行显示表格,进行数据导出,遇到一个问题 在action里面通过hibenater返回多个对象,在extremecomponents的 item里面使用了page.result,但是 里面的属性一个都无法获取,用webwork里面的 ww:property="top[0].name" 则可以获取, 请问 在 extremecomponents里面如何获取action传过来的对象?? 谢谢 :) |
|
回复:使用eXtremeTable的分页特性 软件技术, 电脑与网络
小二(游客)发表评论于2007/3/12 22:12:00 |
你好
我的 MSN 是 xosadan@hotmail.com
你的是? 能否认识下
有些问题相求 谢谢
|
|
回复:使用eXtremeTable的分页特性 软件技术, 电脑与网络
人在博客(游客)发表评论于2006/10/19 11:52:21 |
lhwork:
想问一下,Action类中的 TOTAL_SIZE是要自己提供值吗?你的getTestData是自己实现的吧
|
|
» 1 »
|