为了账号安全,请及时绑定邮箱和手机立即绑定

如何找到ajax update / render组件的客户端ID?找不到带有“bar”引用的表达式

如何找到ajax update / render组件的客户端ID?找不到带有“bar”引用的表达式

吃鸡游戏 2019-05-24 13:37:14
如何找到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”的上下文中找到它这是怎么造成的,我该如何解决?
查看完整描述

4 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

这是因为选项卡是一个命名容器以及...你的更新应该是update="Search:insTable:display"你可以做什么,只是将你的对话框放在表单之外,仍然在选项卡内,然后它将是:update="Search:display"


查看完整回答
反对 回复 2019-05-24
  • 4 回答
  • 0 关注
  • 577 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信