Jsf 如何从datatable更新面板
id为(“myButtonId2”)的Commandbutton工作正常。我的意思是它会更新“myOutputPanel”,但datatable中的commandbutton不会更新outputPanel。数据表是否有特定的更新样式Jsf 如何从datatable更新面板,jsf,primefaces,xhtml,Jsf,Primefaces,Xhtml,id为(“myButtonId2”)的Commandbutton工作正常。我的意思是它会更新“myOutputPanel”,但datatable中的commandbutton不会更新outputPanel。数据表是否有特定的更新样式 <h:form id="myForm" prependId="false"> <p:panel id="myPanel"> <p:dataTable id="myDatatable"> <p:c
<h:form id="myForm" prependId="false">
<p:panel id="myPanel">
<p:dataTable id="myDatatable">
<p:column style="width:4%">
<p:commandButton id="myButtonId" update="myOutputPanel"/>
</p:column>
</p:dataTable>
<p:commandButton id="myButtonId2" update="myOutputPanel"/>
</p:panel>
<p:outputPanel id="myOutputPanel">
//some stuff
</p:outputPanel>
//一些东西
这是因为使用过程和更新时,它们的工作方式与f:ajax
组件属性执行和渲染的工作方式基本相同。如果组件位于同一NamingContainer
中,则只能直接引用组件的id
clientID是通过在命名容器ID前面加前缀生成的,默认情况下,命名容器ID由:
分隔。p:panel
组件没有实现NamingContainer
,尽管h:form
和p:dataTable
确实实现了NamingContainer
myOutputPanel
的客户端ID如下所示:
myForm:myOutputPanel
第二个按钮之所以有效,是因为它位于dataTable之外,并且与表单所在的NamingContainer中的myOutputPanel
相关。要在过程
或更新
中引用绝对clientID,可以在clientID前面加上:
符号
尝试将第一个命令按钮的update
属性更改为:
:myForm:myOutputPanel
这应该允许它绝对地引用它生成的clientID并工作。这是因为使用进程和更新时,它们的工作方式与f:ajax
组件属性执行和渲染do的工作方式基本相同。如果组件位于同一NamingContainer
中,则只能直接引用组件的id
clientID是通过在命名容器ID前面加前缀生成的,默认情况下,命名容器ID由:
分隔。p:panel
组件没有实现NamingContainer
,尽管h:form
和p:dataTable
确实实现了NamingContainer
myOutputPanel
的客户端ID如下所示:
myForm:myOutputPanel
第二个按钮之所以有效,是因为它位于dataTable之外,并且与表单所在的NamingContainer中的myOutputPanel
相关。要在过程
或更新
中引用绝对clientID,可以在clientID前面加上:
符号
尝试将第一个命令按钮的update
属性更改为:
:myForm:myOutputPanel
这应该允许它绝对引用生成的clientID和work。我收到了这个错误。找不到从“tabView:myDatatable:0:myButtonId”引用的标识符为myForm:myOutputPanel的组件。顺便说一下,这个页面在一个选项卡中,选项卡视图的id是“tabview”。我还尝试了“tabview:myOutputPanel”和“:tabview:myOutputPanel”和“:myOutputPanel”。它们都不起作用。@TurgutDsfadfa TabView也是一个NamingContainer,但它是在ui:repeat
上构建的,因此您不能直接为此访问绝对客户端ID。您可能需要更新整个选项卡视图,或者可以使用@form
保留值更新myForm
中的所有元素。请尝试:myForm:TabView:myOutputPanel@jitesh谢谢,我收到了这个错误。找不到从“tabView:myDatatable:0:myButtonId”引用的标识符为myForm:myOutputPanel的组件。顺便说一下,这个页面在一个选项卡中,选项卡视图的id是“tabview”。我还尝试了“tabview:myOutputPanel”和“:tabview:myOutputPanel”和“:myOutputPanel”。它们都不起作用。@TurgutDsfadfa TabView也是一个NamingContainer,但它是在ui:repeat
上构建的,因此您不能直接为此访问绝对客户端ID。您可能需要更新整个选项卡视图,或者可以使用@form
保留值更新myForm
中的所有元素。请尝试:myForm:TabView:myOutputPanel@jitesh谢谢,这很有效