在选项卡更改时更新 h:inputHidden
Updating h:inputHidden on tab change
我有一个包含两个选项卡的 Primefaces 选项卡视图和一个包含一些字符串的 inputHidden
元素。在第一个选项卡上有一个 commandButton
可以更改 inputHidden
元素的值。我想在 useText
JS 函数中使用更改后的值,但我得到了隐藏字段的旧值。
更新我的隐藏字段后,它已更新,但第二个选项卡上的输出文本未更新,我不明白为什么。
<h:form id="formMain">
...
<p:tabView onTabChange="useText(#{bean.text});">
<p:tab title="tab1">
<p:commandButton value="Change" action="#{bean.doBtnChangeText}" update=":formMain:hidArray @(.textTest)" />
</p:tab>
<p:tab title="tab2" >
<h:outputText styleClass="textTest" value="#{bean.text}" />
</p:tab>
</p:tabView>
...
<h:inputHidden id="hidText" value="#{bean.text}" immediate="true" />
</h:form>
编辑:我在第二个选项卡上添加了一些输出文本以检查更新值。我在命令按钮上更新了隐藏字段和输出文本。隐藏字段已更新但输出文本未更新。
正如 Jasper 所说,您可以在您的命令按钮上尝试 update
,或者尝试直接从 bean 更新,在您的 doBtnChangeText()
上,只需调用 RequestContext.getCurrentInstance().update("form:hidText")
.
通过向 h:outputText
元素添加 id
属性解决了这个问题。
<h:outputText id="outText" styleClass="textTest" value="#{bean.text}" />
我有一个包含两个选项卡的 Primefaces 选项卡视图和一个包含一些字符串的 inputHidden
元素。在第一个选项卡上有一个 commandButton
可以更改 inputHidden
元素的值。我想在 useText
JS 函数中使用更改后的值,但我得到了隐藏字段的旧值。
更新我的隐藏字段后,它已更新,但第二个选项卡上的输出文本未更新,我不明白为什么。
<h:form id="formMain">
...
<p:tabView onTabChange="useText(#{bean.text});">
<p:tab title="tab1">
<p:commandButton value="Change" action="#{bean.doBtnChangeText}" update=":formMain:hidArray @(.textTest)" />
</p:tab>
<p:tab title="tab2" >
<h:outputText styleClass="textTest" value="#{bean.text}" />
</p:tab>
</p:tabView>
...
<h:inputHidden id="hidText" value="#{bean.text}" immediate="true" />
</h:form>
编辑:我在第二个选项卡上添加了一些输出文本以检查更新值。我在命令按钮上更新了隐藏字段和输出文本。隐藏字段已更新但输出文本未更新。
正如 Jasper 所说,您可以在您的命令按钮上尝试 update
,或者尝试直接从 bean 更新,在您的 doBtnChangeText()
上,只需调用 RequestContext.getCurrentInstance().update("form:hidText")
.
通过向 h:outputText
元素添加 id
属性解决了这个问题。
<h:outputText id="outText" styleClass="textTest" value="#{bean.text}" />