Pessoal, estou com o seguinte problema:
Tenho um arquivo fragment .xhtml que basicamente mostra os dados para uma pesquisa, em um datatable do primefaces:
<ui:fragment ...
<p:dataTable var="soc" value="#{socMb.all}" rowKey="#{soc.codigo}"
>
<p:column >
<h:outputText value="#{soc.codigo}" />
</p:column>
<p:column >
<h:outputText value="#{soc.nome}" />
</p:column>
<p:ajax event="rowSelect" listener="#{socMb.onRowSelect}" update=":form1:divDados"/> //aqui que estará o problema!
</p:dataTable>
</ui:fragment>
O problema é que eu gostaria de utilizar esse mesmo fragment em dois (ou mais) pontos diferentes do sistema. Mas, na linha que contém o p:ajax, eu consigo executar uma operação no meu Managed Bean, e depois eu tenho que atualizar o meu FORM para exibir os dados que foram carregados por ele.
Só que, se observarem, eu tenho que forçar o nome do formulário : nome da minha div para que ele faça um novo render da página, correto?
O problema é que, em determinado momento, eu terei esse fragment incluído em dois formulários diferentes (também serão dois arquivos .xhtml diferentes):
<div id="divDados">
<p:panel >
<h:form id="form1" prependId="false">
<ui:include src="../pesquisa/meuFragment.xhtml" ></ui:include>
</h:form>
</p:panel>
</div>
e em outro ponto:
<div id="divPesquisado">
<p:panel >
<h:form id="form2" prependId="false">
<ui:include src="../pesquisa/meuFragment.xhtml" ></ui:include>
</h:form>
</p:panel>
</div>
Como eu poderia resolver esse problema? Teria que manter o mesmo nome de formulário e da minha div, em dois arquivos diferentes? Ou existe como passar algum parâmetro que fizesse isso?