如何更新手风琴选项卡中的数据表(primefaces)
How to update datatable in tab of accordion (primefaces)
我有 Accordionpanel>Tab>DataTable。如果你在数据click/select行table,显示对话框。如果你关闭对话框,我会从 managedbean 中重置选定的行(那是有效的)。但是我无法在acc>tab中更新上面的数据table。
代码如下所示:
<h:form id="alphabets">
<h4>XYZ</h4>
<p:accordionPanel id="acc" value="#{aMB.aList}"
var="a" multiple="false" dynamic="true">
<p:tab title="#{a.name}">
<p:dataTable id="table_a" var="b"
value="#{a.Blist}" selectionMode="single"
selection="#{aMB.selectedA}" rowKey="#{b.id}"
rowIndexVar="count">
<p:ajax event="rowSelect" update=":dialog_form:table_c"
onstart="PF('cDialog').show()" />
<p:column style="width:40px !important;" headerText="id"
sortBy="#{count}">
<h:outputText value="#{count+1}" />
</p:column>
<p:column headerText="Name:">
<h:outputText value="#{b.name}" />
</p:column>
</p:dataTable>
</p:tab>
</p:accordionPanel>
</h:form>
<h:form id="dialog_form">
<p:dialog header="xyz details" widgetVar="cDialog"
closeOnEscape="true" showEffect="fade" hideEffect="fade"
resizable="false">
<p:ajax event="close" listener="#{aMB.selectedReset}"
update=":alphabets:acc:tab#{acc.activeIndex}" />
<p:dataTable id="table_c" var="c"
value="#{aMB.selectedB.cList}" selectionMode="single"
rowKey="#{c.id}"
rowIndexVar="count">
<p:column style="width:40px !important;" headerText="id"
sortBy="#{count}">
<h:outputText value="#{count+1}" />
</p:column>
<p:column headerText="Name">
<h:outputText value="#{c.name}" />
</p:column>
</p:dataTable>
</p:dialog>
</h:form>
当我尝试打开此页面时,出现以下错误:
javax.faces.FacesException: Cannot find component with expression ":alphabets:acc:tab" referenced from "dialog_form:j_id_b".
所以我无法从 dialog.Does 更新此 table 任何人有任何想法或经验吗?提前致谢。
使用以下代码更新:
<p:ajax event="close" listener="#{aMB.selectedReset}" update="@([id$=table_a])" />
我有 Accordionpanel>Tab>DataTable。如果你在数据click/select行table,显示对话框。如果你关闭对话框,我会从 managedbean 中重置选定的行(那是有效的)。但是我无法在acc>tab中更新上面的数据table。
代码如下所示:
<h:form id="alphabets">
<h4>XYZ</h4>
<p:accordionPanel id="acc" value="#{aMB.aList}"
var="a" multiple="false" dynamic="true">
<p:tab title="#{a.name}">
<p:dataTable id="table_a" var="b"
value="#{a.Blist}" selectionMode="single"
selection="#{aMB.selectedA}" rowKey="#{b.id}"
rowIndexVar="count">
<p:ajax event="rowSelect" update=":dialog_form:table_c"
onstart="PF('cDialog').show()" />
<p:column style="width:40px !important;" headerText="id"
sortBy="#{count}">
<h:outputText value="#{count+1}" />
</p:column>
<p:column headerText="Name:">
<h:outputText value="#{b.name}" />
</p:column>
</p:dataTable>
</p:tab>
</p:accordionPanel>
</h:form>
<h:form id="dialog_form">
<p:dialog header="xyz details" widgetVar="cDialog"
closeOnEscape="true" showEffect="fade" hideEffect="fade"
resizable="false">
<p:ajax event="close" listener="#{aMB.selectedReset}"
update=":alphabets:acc:tab#{acc.activeIndex}" />
<p:dataTable id="table_c" var="c"
value="#{aMB.selectedB.cList}" selectionMode="single"
rowKey="#{c.id}"
rowIndexVar="count">
<p:column style="width:40px !important;" headerText="id"
sortBy="#{count}">
<h:outputText value="#{count+1}" />
</p:column>
<p:column headerText="Name">
<h:outputText value="#{c.name}" />
</p:column>
</p:dataTable>
</p:dialog>
</h:form>
当我尝试打开此页面时,出现以下错误:
javax.faces.FacesException: Cannot find component with expression ":alphabets:acc:tab" referenced from "dialog_form:j_id_b".
所以我无法从 dialog.Does 更新此 table 任何人有任何想法或经验吗?提前致谢。
使用以下代码更新:
<p:ajax event="close" listener="#{aMB.selectedReset}" update="@([id$=table_a])" />