我正在尝试使用Ajax和命令链接来更新对话框。 Te表单没有任何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>
答案 0 :(得分:1)
p:dataTable
本身就是一个容器。 p:commandLink
正在p:dataTable
内搜索具有ID“对话框”的元素。
解决方案:在表单中添加一个id,并将对话框称为“:formid:dialog”。
编辑:
p:tabView
或p:tab
也是一个容器,因此请在浏览器中检查对话框的ID并使用该对话框。 ;-)应注意避免id为jdt_id4
。