我有一个p:commandButton
调用视图范围的bean方法。该方法设置两个名为textA and textB
的字符串字段,并返回。
ajax调用完成后,会出现对话框。我希望根据变量choice
只显示其中一个网格。它的初始值是choiceA
。会发生什么,页面加载默认选项A,我单击按钮,actionListener方法设置textA
并显示对话框。正如预期的那样,只有一个网格。
但是,当我选择choiceB时,它仍然显示相同的网格gridA
。换句话说,rendered
的{{1}}属性仅在页面加载时正常运行,但在后续的ajax调用中不会更新。奇怪的是,p:panelGrid
正在更新。
以下是代码的相关部分。
textA and textB
为什么<h:form>
<p:selectOneRadio id="optionChoice" value="#{bean.choice}"
<f:selectItem itemLabel="B" itemValue="choiceB" />
<f:selectItem itemLabel="A" itemValue="choiceA" />
</p:selectOneRadio>
<p:commandButton value="Save"
actionListener="#{bean.save}"
update="dialogId"
oncomplete="ajaxComplete(xhr, status, args)">
</h:form>
...
<p:dialog widgetVar="dialog" id="dialogId">
<p:tabView id="tabViewX">
<p:tab id="tabA" title="Tab A">
<h:panelGrid id="gridA" rendered="#{bean.choice eq 'choiceA'}">
<p:inputTextarea value="#{bean.textA}" />
<h:button />
</h:panelGrid>
<h:panelGrid id="gridB" rendered="#{bean.choice eq 'choiceB'}">
<p:inputTextarea value="#{bean.textB}" />
</h:panelGrid>
</p:tab>
</p:tabView>
</p:dialog>
的{{1}}属性仅更新update
而不更新p:commandButton
的任何建议?
我也试过inputTextArea's value
。也没用。
JSF版本:Mojarra JSF API(javax.faces / 2.1)2.1.5(20111123- SNAPSHOT)。 Primefaces 3.0.0 - Murat 2分钟前编辑