Boa noite galera,
Estou tendo problemas com paginação sob demanda utilizando primefaces , segue abaixo o código utilizado.
//Metodo de utilizado para popular o DataTable, onde pesquiso todas as publicações de um determinado parceiro
public LazyDataModel<Publicacao> getLazyPublicacao() {
this.lazyPublicacao = new LazyDataModel<Publicacao>() {
@Override
public List<Publicacao> load(int i, int i1, String string, boolean bln, Map<String, String> map) {
return PublicacaoDao.list(i, i1, parceiro.getId());
};
};
this.lazyPublicacao.setPageSize(5);
this.lazyPublicacao.setRowCount(PublicacaoDao.countList(parceiro.getId()));
return lazyPublicacao;
}
Código da View.
<h:form>
<p:panel>
<p:dataTable id="transacaoDataTable" var="pubs" value="#{parceiro.lazyPublicacao}" paginator="true" rows="5" lazy="true" dynamic="true" paginatorTemplate="{PageLinks}" >
<p:column>
<f:facet name="header">Nome</f:facet>
<h:outputText value="#{pubs.nome}"/>
</p:column>
<p:column>
<f:facet name="header">Data Inicial</f:facet>
<h:outputText value="#{pubs.data_inicio}"/>
</p:column>
<p:column>
<f:facet name="header">Data Final</f:facet>
<h:outputText value="#{pubs.data_inicio}"/>
</p:column>
<p:column>
<f:facet name="header">Status</f:facet>
<h:outputText value="#{pubs.status}"/>
</p:column>
<p:column>
<f:facet name="header">Opções</f:facet>
<p:commandButton image="ui-icon-pencil" action="#{parceiro.liberaPublicacao()}" update="contentWindowPublicacao" oncomplete="windowPublicacao.show()"/>
</p:column>
</p:dataTable>
</p:panel>
</h:form>
Trecho de código onde tento utilizar o getRowData();
public void liberaPublicacao(){
this.selectedPublicacao = (Publicacao) this.lazyPublicacao.getRowData();
System.out.println("Selecionado + " + this.selectedPublicacao.getNome());
}
Problema ao realizar o clique no botão , não esta entrando no metodo liberaPublicacao() . retirei a paginação sob demanda, funcionou certinho com a view desta maneira… entrando no metodo e trazando o valor para this.selectedPublicacao.
Se alguem souber a solução ou tiver algum exemplo agradeço