我不知道我是对的,但据我所知,rich:datascroller上显示的页数基于填充数据表的列表大小。
但事情就是这样:让我们说总共会有20条记录显示出来。我只想查询其中的10个,并使其在datascroller上有两个页面。我无法查询我的所有记录,因为有时可能超过300.000条记录。我不能把它留在记忆中。无论如何,这可以实现吗?
到目前为止,这是我的代码:
<rich:datascroller for="grdPemissoes" maxPages="5"
reRender="contentResultadoTable, labelResultados"
page="#{actionDivisao.pageIndex}"
pageVar="#{actionDivisao.totalPages}"
eventsQueue="queueScroller"
</rich:datascroller>
<rich:dataTable id="grdPemissoes" rowClasses=" ,td_cinza"
value="#{actionDivisao.listaResultados}"
styleClass="table table-search-result"
var="divisao" rowKeyVar="row"
rows="#{actionDivisao.registrosPorPagina}">
//columns
</rich:dataTable>
由于总共有10条记录,因此无法显示任何页面。 我正在使用richfaces 3和jsf 1.2。
答案 0 :(得分:1)
如果要更改默认行为,表格使用dataModel(javax.faces.model.DataModel
或扩展它的类),例如返回与已加载的记录数不同的大小,您需要实现自己的dataModel并将其传递给表的value属性:
public class MyDataModel extends org.ajax4jsf.model.ExtendedDataModel {
@Override
public int getRowCount() {
return this.list.size() + 10; // or something
}
…
}
您可以查看showcase。
中的示例