Sur datatable, j'ai activé la case à cocher de sélection multiple. Et il y a bouton soumettre, sur actionlistener, je reçois des enregistrements en double en tant qu'éléments sélectionnés. Par exemple, sur la première page, il y a 5 enregistrements et le nombre total d'enregistrements est 10, puis les enregistrements de la première page sont dupliqués deux fois et aboutissent à 10 enregistrements, ce qui devrait être limité à 5 enregistrements.Primefaces datatable mode de sélection multiple - chargement de charge paresseux
Ce qui suit est l'extrait de code:
<p:dataTable id="sampleDataTable" var="_task" value="#{myBean.lazyModelTasks}"
styleClass="dataTable" paginator="true" paginatorTemplate="{PageLinks}"
paginatorPosition="bottom" rows="5" widgetVar="dataTab"
paginatorAlwaysVisible="true" rowIndexVar="rowIndex"
lazy="true" selection="#{myBean.selectedItems}"
emptyMessage="No Search Results found !">
<p:column selectionMode="multiple" style="width:15px;">
<f:facet name="header">
<h:outputText value="Sno" />
</f:facet>
</p:column>
</p:dataTable>
<p:commandButton id="submit" value="Select" update="#{rerenderid}"
actionListener="#{myBean.addSelectedItems}" oncomplete="#{onlinkclick}">
<f:attribute name="selectedItems" value="#{myBean.selectedItems}"/>
</p:commandButton>
code managé Bean:
public void addExternalRecipients(ActionEvent event) {
//THIS GIVES ME 10 RECORDS, THOUGH THERE ARE ONLY 5 RECORDS AT THAT INSTANCE
this.selectedItems = (Address[])
event.getComponent().getAttributes().get("selectedItems");
}