Как узнать идентификатор клиента компонента для обновления / рендеринга ajax? Не удается найти компонент с выражением «foo», на которое ссылается «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>
содержит неизвестный идентификатор «insTable: display» не может найти его в контексте компонента «tabs: insTable: select»
Как это вызвано и как я могу решить это?