jsf 2 - primefaces datatable with checkboxes are processing selects when are marked -


i have 1 datatable multiple selection (checkboxes). every time checkboxes marked, executed select of datatable again.

xhtml:

<p:datatable id="dtusuarios"                             widgetvar="usuarios" value="#{configgruposusuariosmb.usuarios}"                             var="usuario" paginator="true" rows="10"                             paginatorposition="bottom" scrollable="true" scrollheight="82%"                             rowsperpagetemplate="5,10,15,30,50,100"                             paginatortemplate="{currentpagereport}  {firstpagelink} {previouspagelink} {pagelinks} {nextpagelink} {lastpagelink} {rowsperpagedropdown}"                             emptymessage="#{i18n.datatablevazia}" lazy="true"                             currentpagereporttemplate="{currentpage}/{totalpages} #{i18n.paginas} - {startrecord} #{i18n.a} {endrecord} #{i18n.de} {totalrecords}"                             filteredvalue="#{configgruposusuariosmb.usuariofiltered}"                             resizablecolumns="true" rowindexvar="rowix"                             selection="#{configgruposusuariosmb.usuariosselecionados}"                             rowkey="#{usuario.id}" style="float: right; width: 99%; overflow: hidden;" >                              <p:ajax event="rowselectcheckbox" />                             <p:ajax event="rowunselectcheckbox"/>                              <f:facet name="header">                                 <p:outputlabel value="#{i18n.usuarios}" style="float: left;" />                             </f:facet>                              <f:facet name="header">                                 <p:outputpanel>                                     <h:outputtext value="#{i18n.pesquisaglobal}:" />                                     <p:inputtext id="globalfilter" onkeyup="usuarios.filter()"                                         style="width:70px" />                                     <p:watermark value="#{i18n.filtroglobal}" for="globalfilter" />                                 </p:outputpanel>                             </f:facet>                              <p:column id="cbx" selectionmode="multiple" style="width:17px" />                              <p:column id="nome" headertext="#{i18n.nomecompleto}"                                 sortby="#{usuario.nome}" style="width:35%;">                                 <h:outputtext value="#{usuario.nome}" />                             </p:column>                              <p:column id="email" headertext="#{i18n.email}"                                 sortby="#{usuario.email}" style="width:35%;">                                 <h:outputtext value="#{usuario.email}" />                             </p:column>                              <p:column id="grupoatual" headertext="#{i18n.grupoatual}"                                 sortby="#{usuario.grupousuario.descricao}" style="width:30%;">                                 <h:outputtext value="#{usuario.grupousuario.descricao}" />                             </p:column>                          </p:datatable> 

mb (@viewscoped):

@managedbean(name = "configgruposusuariosmb") @viewscoped public class configgruposusuariosmb {      @ejb     private grupousuarioservice grupousuarioservice;     @ejb     private usuarioservice usuarioservice;     @inject     private messagescontroller messages;      private grupousuario grupousuarioselecionado;     private list<grupousuario> gruposusuarios;     private lazydatamodel<usuario> usuarios;     private lazydatamodel<usuario> usuariosgrupo;     private usuario usuariofiltered;     private usuario usuariogrupofiltered;     private list<usuario> usuariosselecionados;     private list<usuario> usuariosgruposelecionados;     private etipousuario tipousuarioselecionado;      // buscar palavras da base de internacionalizaĆ§Ć£o     resourcebundle i18n = resourcebundle.getbundle("br.com.sales.messages.msg",             facescontext.getcurrentinstance().getviewroot().getlocale());      public grupousuario getgrupousuarioselecionado() {         return grupousuarioselecionado;     }      public void setgrupousuarioselecionado(grupousuario grupousuarioselecionado) {         this.grupousuarioselecionado = grupousuarioselecionado;     }      public list<grupousuario> getgruposusuarios() {         return gruposusuarios;     }      public void setgruposusuarios(list<grupousuario> gruposusuarios) {         this.gruposusuarios = gruposusuarios;     }      public lazydatamodel<usuario> getusuarios() {         if (usuarios == null) {             usuarios = new genericlazydatamodel<usuario>(                     usuarioservice.findall());         }          return usuarios;     }      public void setusuarios(lazydatamodel<usuario> usuarios) {         this.usuarios = usuarios;     }      public etipousuario gettipousuarioselecionado() {         if (tipousuarioselecionado == null)             tipousuarioselecionado = etipousuario.a;          if (gruposusuarios == null || gruposusuarios.isempty())             carregarlistagrupos(tipousuarioselecionado);          return tipousuarioselecionado;     }      public void settipousuarioselecionado(etipousuario tipousuarioselecionado) {         this.tipousuarioselecionado = tipousuarioselecionado;          carregarlistagrupos(tipousuarioselecionado);     }      public list<selectitem> gettiposusuarios() {         list<selectitem> tipos = new arraylist<selectitem>();          (etipousuario tipousuario : etipousuario.getall()) {             tipos.add(new selectitem(tipousuario, i18n.getstring(tipousuario                     .gettipo())));         }          return tipos;     }      public void carregarlistagrupos(etipousuario tipo) {         gruposusuarios = grupousuarioservice                 .findbytipousuario(tipousuarioselecionado);          grupousuarioselecionado = getgrupousuariopadrao();     }      public grupousuario getgrupousuariopadrao() {         (grupousuario grupo : gruposusuarios) {             if (grupo.ispadrao())                 return grupo;         }          return new grupousuario();     }      public lazydatamodel<usuario> getusuariosgrupo() {         list<usuario> users = usuarioservice                 .findbygrupousuario((grupousuarioselecionado != null ? grupousuarioselecionado                         : new grupousuario()));          usuariosgrupo = new genericlazydatamodel<usuario>(users);          return usuariosgrupo;     }      public void setusuariosgrupo(lazydatamodel<usuario> usuariosgrupo) {         this.usuariosgrupo = usuariosgrupo;     }      public usuario getusuariofiltered() {         return usuariofiltered;     }      public void setusuariofiltered(usuario usuariofiltered) {         this.usuariofiltered = usuariofiltered;     }      public usuario getusuariogrupofiltered() {         return usuariogrupofiltered;     }      public void setusuariogrupofiltered(usuario usuariogrupofiltered) {         this.usuariogrupofiltered = usuariogrupofiltered;     }      public list<usuario> getusuariosgruposelecionados() {         return usuariosgruposelecionados;     }      public void setusuariosgruposelecionados(             list<usuario> usuariosgruposelecionados) {         this.usuariosgruposelecionados = usuariosgruposelecionados;     }      public list<usuario> getusuariosselecionados() {         return usuariosselecionados;     }      public void setusuariosselecionados(list<usuario> usuariosselecionados) {         this.usuariosselecionados = usuariosselecionados;     }      public void reset() {         usuariosselecionados = null;         usuariosgruposelecionados = null;         usuarios = null;         getusuarios();         usuariosgrupo = null;         getusuariosgrupo();     }      public void adicionarusuarios() {         list<usuario> usersatuais = ((genericlazydatamodel<usuario>) usuariosgrupo)                 .getdatasource();          (usuario user : usuariosselecionados) {             if (!user.getgrupousuario().equals(grupousuarioselecionado)) {                 user.setgrupousuario(grupousuarioselecionado);                 usersatuais.add(user);             }         }          // teste...         usuarioservice.merge(usuariosselecionados);         // reset();          if (usuariosselecionados != null)             usuariosselecionados.clear();         if (usuariosgruposelecionados != null)             usuariosgruposelecionados.clear();          usuariosgrupo = null;         usuariosgrupo = new genericlazydatamodel<usuario>(usersatuais);          messages.addinfo("msgsucessoparcial");     }      public void removerusuarios() {         boolean error = false;          (usuario user : usuariosgruposelecionados) {             if (user.getgrupousuario().equals(usuariosgruposelecionados)) {                 error = true;                 continue;             } else {                 user.setgrupousuario(getgrupousuariopadrao());             }         }          reset();         if (error)             messages.addwarn("msgavisousuariogrupo");          messages.addinfo("msgsucessoparcial");     }      public void save() {         usuarioservice.merge(usuariosselecionados);         messages.addinfo("msgsucesso");     }  } 

if remove <p:ajax event="rowselectcheckbox" /> or change <p:ajax event="rowselectcheckbox" process="@none"/>, method "setusuariosselecionados(list usuariosselecionados)" not invoked.

i need call "setusuariosselecionados(list usuariosselecionados)" when checkbox marked.

i'm using jsf2, primefaces 3.5

sorry english (googletranslate =d)


Comments

Popular posts from this blog

wordpress - (T_ENDFOREACH) php error -

Export Excel workseet into txt file using vba - (text and numbers with formulas) -

Using django-mptt to get only the categories that have items -