1

ダイアログを更新するためのコマンドリンクでAjaxを使用しようとしています。フォームにIDがありません。このページも実行できません。「ダイアログ」のあるコンポーネントが見つからない、または存在しないと表示されます。

<h:form>
    <p:tabView id="tabView">
        <p:tab id="tab1" title="Tab 1">
            <h:panelGrid columns="1" cellpadding="10">
                <h:dataTable value="#{testBean.dataList}" var="data">
                    <h:column>
                        <h:outputText value="#{data}" />
                    </h:column>
                    <h:column>
                        <p:commandLink action="#{testBean.loadCommentHistory(data)}"
                            update="dialog" oncomplete="dlg.show()">
                            <h:graphicImage url="resources/theme1/images/comments.gif"
                                styleClass="basicImageStyle" />
                        </p:commandLink>
                    </h:column>
                </h:dataTable>
                <p:dialog id="dialog" header="Dynamic Dialog" widgetVar="dlg">
                    <h:outputText value="#{testBean.commentHistory}" />
                </p:dialog>
            </h:panelGrid>
        </p:tab>
    </p:tabView>
</h:form>
4

1 に答える 1

1

それp:dataTable自体がコンテナです。は、IDが「dialog」の要素をp:commandLink内で検索しています。p:dataTable

解決策:フォームにIDを追加し、ダイアログを「:formid:dialog」として参照します。

編集:

またははコンテナでp:tabViewp:tabあるため、ブラウザでダイアログのIDを確認し、それを使用してください。;-)idを。として使用しないように注意する必要がありますjdt_id4

于 2012-12-08T13:18:00.890 に答える