面板更新值Pupup

问题描述:

我有一个问题,ICEFaces更新我的ice的值:panelPopup。我有WBW值在我main.xhtml页:面板更新值Pupup

<ice:inputText value="#{main.wbw}" size="5"> 
    <f:convertNumber minFractionDigits="2" maxFractionDigits="2" /> 
</ice:inputText> 

enter image description here

我在主XHTML页面包含一个第二XHTML页面:

<ui:include src="/resources/includs/second.xhtml" /> 

在我second.xhtml我的价值与main.xhtml

<ice:inputText value="#{main.wbw}"/> 

enter image description here

的问题是,当我在second.xhtml价值全自动改变了main.xhtml更改值,但是当我关闭弹出和我改变价值在我的main.xhtml页面,他没有更新,他没有更改我的second.xhtml页面中的值,以便弹出窗口不更新并保留旧值。有人知道如何更新价值?

+0

你使用'render'属性了吗? –

+0

不,我不使用渲染属性,因为它只用于渲染组件。所以如果我把渲染=“假”整个输入组件不会被渲染。所以这不是我需要的。我知道在Primefaces中有一个“更新”属性,它完全符合我所需要的,但ICEFaces不具备此功能。 –

+0

IceFaces **确实**有一个'更新'...​​你在哪里读过他们没有? – Kukeltje

我发现它为什么没有更新。当弹出菜单关闭时,菜单的状态就像隐藏的一样,以便该菜单中的值不存在于生命周期中。在你打开弹出窗口的时候,它们会被创建。所以当它关闭时,inputText是未定义的。当你打开弹出菜单时,你需要通过javascript更新值。

var wbw = document.getElementById(inputText_id of main.xhtml).value; 
if (document.getElementById(inputText_id of second.xhtml) != null) 
    document.getElementById(inputText_id of second.xhtml).value = wbw; 

此解决方案适用于我。我只是在打开弹出式菜单后通过javascript更新了值。