我正在使用Primefaces 3.4(也尝试过3.3)和Mojarra 2.1.7。但是我在p:tabView中更新我的动态标签时遇到了问题。
我有2个按钮,应该添加一个额外的标签。第一个按钮位于p:tabView之外。单击此按钮时,将调用辅助bean,更新p:tabView,并显示新选项卡。但是,当我单击第二个按钮(位于该tabView的选项卡内)时,将调用支持bean,但不会更新tabView。
这种缺乏更新仅在动态标签中出现。当我修改给定的示例只有一个选项卡,并显示一个单击按钮时更改的值时,tabView将由两个按钮更新,并显示新的值。所以这只是一个问题,只出现在动态标签中。
这是我的代码。
<f:view contentType="text/html">
<h:form>
<p:commandButton value="press me" action="#{idTestBean.addTab}" update=":ApplicationTab"/>
</h:form>
<p:tabView id="ApplicationTab" cache="false" dynamic="false" var="tab" value="#{idTestBean.tabList}">
<p:tab title="tab" closable="false" >
<p:panel>
<h:form>
<p:commandButton value="press me" action="#{idTestBean.addTab}" update=":ApplicationTab"/>
</h:form>
#{idTestBean.count}
</p:panel>
</p:tab>
</p:tabView>
</f:view>
不同的标签包含需要单独提交的单独表格。因此,我有多种形式的方法。
答案 0 :(得分:2)
这一定要做到这一点:
<f:view contentType="text/html">
<h:form>
<p:commandButton value="press me" action="#{idTestBean.addTab}" update="@form"/>
<p:tabView id="ApplicationTab" cache="false" dynamic="false" var="tab" value="#{idTestBean.tabList}">
<p:tab title="tab" closable="false" >
<p:panel>
<p:commandButton value="press me" action="#{idTestBean.addTab}" update="@form"/>
#{idTestBean.count}
</p:panel>
</p:tab>
</p:tabView>
</h:form>
</f:view>
答案 1 :(得分:0)
今天我也遇到了同样的问题,我有一个动态tabview,并且在标签内部,有一些面板需要在标签更改时更新,所以我做的是,我在事件TabChange上添加了p:ajax ,在update属性中,我添加了表单id和tabviewId,如下所示:
:formID:tabViewID
它终于奏效了。 你知道吗