以使用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); 这里的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)); |
|
来自: zhaopengxslc > 《我的图书馆》