报错:You need to specify the totalRows (as an Integer) to use the org.extremecomponents.table.callback.LimitCallback

testu 2007-03-01
我第一次用ECSIDE
1。简单写了一个DB查询,并且在ACTION里:
request.setAttribute("recordList", list);

2。在JSP里写:
<ec:table tableId="${ecTableId}" items="recordList" var="user"
action="${pageContext.request.contextPath}/demo_list.jsp?easyList=userInfoList"
title="用户列表" showPrint="true" xlsFileName="用户列表.xls"
nearPageNum="0"  resizeColWidth="false"
width="100%" listWidth="780" >
<ec:row >
<ec:column width="80" property="_0" title="序号"  value="${GLOBALROWCOUNT}" />
<ec:column width="120" property="opername" title="用户名" />
</ec:row>
</ec:table>


运行,结果报错:
You need to specify the totalRows (as an Integer) to use the org.extremecomponents.table.callback.LimitCallback

请问这是什么原因,该怎么解决?
fins 2007-03-01
你是采用数据库端分页 还是服务器端分页??

fins 2007-03-01
我那个例子里也有一个 action的例子

你看看我的那个action是怎么写的 你就应该明白了

通常你还应该写一个求总行数的方法
并且把总行数也放到 request里
testu 2007-03-01
我的分页都是通过SQL直接分页的,也就是在SQL语句上已经加上了分页

ECSIDE为什么不能直接取到总行数呢?
因为当我把结果集放到request中以后,ECSIDE完全可以通过.size()取到总行数呀,干吗还要我再写一句类似:
request.setAttribute("totalRows", new Integer(10));
这样的语句呢?

另外,问一下fins
当我们向JSP返回数据的时候,
是自己定义一个集合,而不是使用List,
这种情况下,我该怎么办?
我向直接修改ecside的代码,能告诉我该修改哪里吗?
bjwulin 2007-03-01
何必改代码,totalrow的设计是考虑数据库内分页的。那时要对totalrow单独求。

你现在不用数据库内分页,totalrow=.size(),也不必改组件代码,直接封装一个方法就可以了吧。
testu 2007-03-02
请教bjwulin
能将一下ECSIDE的两种分页方式的原理吗

因为我们目前都是用直接通过SQL的LIMIT来实现分页的
fins 2007-03-02
那你就要调用
RequestUtil.getStartEnd方法了

具体参见 demo中的action
Global site tag (gtag.js) - Google Analytics