Как узнать идентификатор клиента компонента для обновления / рендеринга ajax? Не удается найти компонент с выражением «foo», на который ссылается «bar»

Следующий код вдохновлен PrimeFaces DataGrid + DataTable Tutorials и помещен в из , находящегося в a из . Вот внутренняя часть кода (начиная с компонента 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>

Когда я щелкаю , код перестает работать и выдает сообщение:

Не удается найти компонент с выражением «insTable: display», на который ссылается «tabs: insTable: select» .

Когда я пробую то же самое, используя , он терпит неудачу с другим сообщением, в основном говорящим то же самое:

содержит неизвестный идентификатор "insTable: display "не может найти его в контексте компонента" tabs: insTable: select "

Как это вызвано и как я могу решить эту проблему?

131
задан BalusC 11 September 2015 в 06:52
поделиться