我有一个问题与primefaces 5.1当我从表中选择一行,我想更新其他表我必须点击两次才能工作。
当我单击tb_hojas表中的一行时,此方法cargarTablas()获取数据并从tb_familia表中更新ArrayList,但是我必须单击tb_hojas表的两行以查看tb_familia中的新数据表
在我使用RequestScope的bean中它可以工作,但我需要使用ViewScoped。
这是我的代码XHTML:
<h:form id="panel">
<p:dataTable id="tb_hojas" selection="#{hojaB2.filaHojas}" rowKey="#{lis.id}"
selectionMode="single" scrollable="true" scrollHeight="300" resizableColumns="true"
liveResize="true" var="lis" value="#{hojaB2.tablaHojas}"
paginator="true" rows="50" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="25,30,50" filteredValue="#{hojaB2.filtroHojas}">
<p:ajax listener="#{hojaB2.cargarTablas()}" update=":panel" event="rowSelect" />
<p:column headerText="id" sortBy="#{lis.id}" filterBy="#{lis.id}">
<h:outputText value="#{lis.id}"/>
</p:column>
<p:column headerText="nombre" sortBy="#{lis.nombre}" filterBy="#{lis.nombre}">
<h:outputText value="#{lis.nombre}"/>
</p:column>
</p:dataTable>
<p:dataTable id="tb_familia" selection="#{hojaB2.filaFamilia}" selectionMode="single" scrollable="true" scrollHeight="300" resizableColumns="true"
liveResize="true" var="lis2" value="#{hojaB2.tablaFamilia}" rowKey="#{lis2.codigo}"
paginator="true" rows="50" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="25,30,50" filteredValue="#{hojaB2.filtroFamilia}">
<p:ajax listener="#{hojaB2.cargarDialogoFamilia()}" oncomplete="PF('dlg_familia2').show();" update="@([id$=tb_familia]),@([id$=Form])" event="rowSelect" >
</p:ajax>
<p:column headerText="codigo" sortBy="#{lis2.codigo}" filterBy="#{lis2.codigo}">
<h:outputText value="#{lis2.codigo}"/>
</p:column>
<p:column headerText="nombre" sortBy="#{lis2.nombre}" filterBy="#{lis2.nombre}">
<h:outputText value="#{lis2.nombre}"/>
</p:column>
<p:column headerText="cargo" sortBy="#{lis2.cargo}" filterBy="#{lis2.cargo}">
<h:outputText value="#{lis2.nombre}"/>
</p:column>
</p:dataTable>
</h:form>
答案 0 :(得分:0)
为什么要更新p:tables
所在的自己的表格?
我相信只更新另一个表会解决你的问题,足以满足你的要求。
示例:
<p:ajax listener="#{hojaB2.cargarTablas()}" update="tb_familia" event="rowSelect" />