rich:dataScroller不起作用

时间:2012-12-01 22:58:34

标签: java jsf-2 richfaces

这是一个场景,我有一个数据库表,其中包含付款但未由客户付款的账单。在托管bean中,这由Map< Cliente,List< Carrito>表示。 Cliente是每个客户和List< Carrito>是没有支付的账单清单。

我通过查询得到这张地图,同时我计算了他的账单中有多少Cliente被放入地图。此计数器值用于初始化属性(int []页面)。

地图显示在每个Cliente的一个rich dataTable中。每个dataTable都是分页的,在我设置的页脚中,

<rich:dataScroller page="#{adminCarritoBean.page[current.index]}"/>

是current.index的索引

<ui:repeat varStatus=”current”>

用于选择每对Cliente-List&lt; Carrito&gt;。

现在的问题。每次在dataTable中选择一个页面时,我都会得到一个ClassCastException。我有一个样本,两个Cliente一个有三个账单,另一个有六个账单。每个表都显示五个账单,所以当分页显示在第二位时我无法分页,页脚被锁定。

这是代码,

<ui:repeat value="#{adminCarritoBean.clientes.entrySet().toArray()}"
    var="cliente" varStatus="current" id="repeat">
    <table style="border-collapse:collapse; border:1px solid black;">
    <tbody>
      <tr><td>
          <h:outputText value="#{cliente.key.nombre} #{cliente.key.apellido1} #{cliente.key.apellido2}" />
          </td></tr>
    </tbody>
</table>
<c:set value="#{adminCarritoBean.selectedIds.get(cliente.key)}" var="mapIds"/>
<rich:dataTable id="crtoTable" value="#{cliente.value}"
        var="crto" iterationStatusVar="it" rows="5">
    <rich:column>
    <f:facet name="header">Referencia</f:facet>
    <h:outputText value="#{crto.referencia}" />
    </rich:column>
    <rich:column>
    <f:facet name="header">Fecha de Compra</f:facet>
    <h:outputText value="#{crto.fechaCompra}" />
    </rich:column>
    ----------------------------
        ----------------------------
    <rich:column>
    <f:facet name="header">Select</f:facet>
    <h:selectBooleanCheckbox value="#{mapIds[crto.id]}" />
    </rich:column>
    <f:facet name="footer">
        <rich:dataScroller page="#{adminCarritoBean.page[current.index]}"/>
    </f:facet>
</rich:dataTable>
<br />
</ui:repeat>

初始化int []页面的代码如下,

if(count > 0) {
loadList = true;
if((null == page) || ((null != page) && (count < page.length))) {
    page = new int[count];
    for(int i = 0; i < count; i++) {
        page[i] = 1;
    }
}
}

0 个答案:

没有答案