在随后的ajax调用中呈现的属性不会更新

时间:2012-02-03 20:56:16

标签: ajax jsf primefaces

我有一个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分钟前编辑

0 个答案:

没有答案