如何找到ajax update / render组件的客户端ID?找不到带有“bar”引用的表达式
下面的代码是从PrimeFaces的DataGrid + DataTable的教程启发和放入<p:tab>
一个的<p:tabView>
居住在<p:layoutUnit>
的<p:layout>
。这是代码的内部部分(从p:tab
组件开始); 外部是微不足道的。
<p:tabView id="tabs"> <p:tab id="search" title="Search"> <h:form id="insTable"> <p:dataTable id="table" var="lndInstrument" value="#{instrumentBean.instruments}"> <p:column> <p:commandLink id="select" update="insTable:display" oncomplete="dlg.show()"> <f:setPropertyActionListener value="#{lndInstrument}" target="#{instrumentBean.selectedInstrument}" /> <h:outputText value="#{lndInstrument.name}" /> </p:commandLink> </p:column> </p:dataTable> <p:dialog id="dlg" modal="true" widgetVar="dlg"> <h:panelGrid id="display"> <h:outputText value="Name:" /> <h:outputText value="#{instrumentBean.selectedInstrument.name}" /> </h:panelGrid> </p:dialog> </h:form> </p:tab></p:tabView>
当我单击时<p:commandLink>
,代码停止工作并给出消息:
找不到表达式为“insTable:display”的组件,引用自“tabs:insTable:select”。
当我尝试相同的使用时<f:ajax>
,它失败了,基本上告诉相同的不同消息:
<f:ajax>
包含一个未知的id“insTable:display”无法在组件“tabs:insTable:select”的上下文中找到它
这是怎么造成的,我该如何解决?
RISEBY
相关分类