Pessoal estou com um problema que ao utilizar várias listener para executar em uma ação.
<p:tree id="docTree" value="#{pastaCtrl.root}" var="folderType" selectionMode="single"
selection="#{pastaCtrl.selectedNode}" expandAnim="FADE_IN" collapseAnim="FADE_OUT" style="cursor:pointer"
dynamic="true" cache="true">
<p:ajax event="select" listener="#{docCtrl.onSelectFolder(folderType)}" update=":resultsForm,:searchForm" />
<p:ajax event="select" listener="#{grupoCtrl.setFolder(folderType)}" update=":grupoForm" />
<p:ajax event="expand" listener="#{pastaCtrl.onNodeExpand}" update=":form:docTree" />
<p:treeNode expandedIcon="#{folderType.type == 'Lock' ? 'ui-icon-image' : 'ui-icon-folder-open'}"
collapsedIcon="#{folderType.type == 'Lock' ? 'ui-icon-image' : 'ui-icon-folder-collapsed'}">
<h:outputText value="#{folderType.name}" />
</p:treeNode>
</p:tree>
Nessas duas linhas, ao selecionar um item na árvore ele deve executar duas ações para o usuário, que resulta em atividades diferentes na página.
Qual o problema, ele está fazendo isso corretamente em partes.
- ele executa os dois comandos e retorna o esperado.
Porem ao navegar no dataTable(:resultsForm) ele não modifica as páginas.
Apare a lista da primeira página e a quantidade de itens e as páginas.
Ao clicar na página ele não executa nenhuma ação. Ou seja, não atualiza o dataTable, porem mostra que esta na página dois, por exemplo.
Realizei o teste removendo o segundo ajax select e as páginas ficam normal, ou seja, volta a atualizar o componente corretamente.
Não sei se estou fazendo correto essa chamada de dois listener para o mesmo evento, caso tenho outra forma me ajudem.
Extra:
Já tentei dessas formas…
<p:ajax event="select" listener="#{docCtrl.onSelectFolder(folderType)},#{grupoCtrl.setFolder(folderType)}" update=":resultsForm,:searchForm,:grupoForm" />
<p:ajax event="select" listener="#{docCtrl.onSelectFolder(folderType)};#{grupoCtrl.setFolder(folderType)}" update=":resultsForm,:searchForm,:grupoForm" />
<p:ajax event="select" listener="#{docCtrl.onSelectFolder(folderType),grupoCtrl.setFolder(folderType)}" update=":resultsForm,:searchForm,:grupoForm" />
<p:ajax event="select" listener="#{docCtrl.onSelectFolder(folderType);grupoCtrl.setFolder(folderType)}" update=":resultsForm,:searchForm,:grupoForm" />
Todas apresentaram erros… (coisa de novato)
Fico no aguardo para mais informação caso precise.