无法更改页面 p:dataTable
Can't change page p:dataTable
我已经实现了在 primefaces 中做一个 table 惰性的代码,所以我有方法分页哪些检索信息。问题是没有显示每页的数量。所以如果我有 100 个,我就只能看到 15 个元素了。页面按钮未显示。
就像这个截图:
豆中:
@PostConstruct
public void init() {
listadoPedidos = new LazyDataModel<Pedido>() {
private static final long serialVersionUID = 1L;
@SuppressWarnings("unchecked")
@Override
public List<Pedido> load(int first, int pageSize, String sortField, sortOrder sortOrder,
Map<String, Object> filters) {
List<Pedido> lista = new ArrayList<Pedido>();
boolean ordenar = sortOrder == SortOrder.ASCENDING ? true : false;
try {
lista = commonService.obtenerListaPaginada(Pedido.class, first, pageSize, "", "", "", "", campos);
listadoPedidos.setRowCount(lista.size());
} catch (Exception e) {
e.printStackTrace();
MensajesErrores.error(e.getMessage());
}
return lista;
}
};
}
而 JSF 是:
<p:dataTable
id="tablaUsuario"
rowIndexVar="secuencial"
emptyMessage="#{msgs.lbl_no_hay_datos}"
value="#{pedidoBean.listadoPedidos}"
var="_pedido"
paginator="true"
paginatorPosition="top"
style="width:100%"
selection="#{pedidoBean.pedido}"
selectionMode="single"
rowKey="#{_pedido.rowKey}"
sortBy="#{_pedido.id}"
sortOrder="DESCENDING"
lazy="true"
rows="15"
paginatorTemplate="
{CurrentPageReport}
{FirstPageLink}
{PreviousPageLink}
{PageLinks}
{NextPageLink}
{LastPageLink}
{RowsPerPageDropdown}"
rowsPerPageTemplate="15,25,50,100"
>
<p:column filterStyleClass="input-text"
styleClass="columnaDTCodigo tableCell"
headerText="#{msgs.lbl_numero}">
<h:outputText value="#{_pedido.id}" />
</p:column>
</p:dataTable>
我真的没有看到错误,带有寄存器数量的下拉列表效果很好。
我的错误在这一行:
listadoPedidos.setRowCount(lista.size());
用。。。来代替
listadoPedidos.setRowCount(TOTAL_ROWS_IN_DATABASE);
我已经实现了在 primefaces 中做一个 table 惰性的代码,所以我有方法分页哪些检索信息。问题是没有显示每页的数量。所以如果我有 100 个,我就只能看到 15 个元素了。页面按钮未显示。
就像这个截图:
豆中:
@PostConstruct
public void init() {
listadoPedidos = new LazyDataModel<Pedido>() {
private static final long serialVersionUID = 1L;
@SuppressWarnings("unchecked")
@Override
public List<Pedido> load(int first, int pageSize, String sortField, sortOrder sortOrder,
Map<String, Object> filters) {
List<Pedido> lista = new ArrayList<Pedido>();
boolean ordenar = sortOrder == SortOrder.ASCENDING ? true : false;
try {
lista = commonService.obtenerListaPaginada(Pedido.class, first, pageSize, "", "", "", "", campos);
listadoPedidos.setRowCount(lista.size());
} catch (Exception e) {
e.printStackTrace();
MensajesErrores.error(e.getMessage());
}
return lista;
}
};
}
而 JSF 是:
<p:dataTable
id="tablaUsuario"
rowIndexVar="secuencial"
emptyMessage="#{msgs.lbl_no_hay_datos}"
value="#{pedidoBean.listadoPedidos}"
var="_pedido"
paginator="true"
paginatorPosition="top"
style="width:100%"
selection="#{pedidoBean.pedido}"
selectionMode="single"
rowKey="#{_pedido.rowKey}"
sortBy="#{_pedido.id}"
sortOrder="DESCENDING"
lazy="true"
rows="15"
paginatorTemplate="
{CurrentPageReport}
{FirstPageLink}
{PreviousPageLink}
{PageLinks}
{NextPageLink}
{LastPageLink}
{RowsPerPageDropdown}"
rowsPerPageTemplate="15,25,50,100"
>
<p:column filterStyleClass="input-text"
styleClass="columnaDTCodigo tableCell"
headerText="#{msgs.lbl_numero}">
<h:outputText value="#{_pedido.id}" />
</p:column>
</p:dataTable>
我真的没有看到错误,带有寄存器数量的下拉列表效果很好。
我的错误在这一行: listadoPedidos.setRowCount(lista.size()); 用。。。来代替 listadoPedidos.setRowCount(TOTAL_ROWS_IN_DATABASE);