我有一个应用程序,它运行一个计时器脚本,当它超时时单击一个操作按钮。操作按钮由display:none隐藏。在操作按钮上,我从onClick事件中对panelButtonBar进行了部分刷新。这一切都很有效,除了onClick事件的部分内容是根据文档的条件设置viewScope变量。 viewScope变量是vsIsLocked,可以是true或false。如果值为true,我不希望panelButtonBar刷新。我创建了一个名为dummyField的字段,并将以下内容添加到部分刷新的定义中:
(viewScope.get("vsIsLocked")) ? "dummyField" : "panelButtonBar"
将dBar.info语句放在操作按钮onClick的代码中我知道它按计划运行,我也知道vsIsLocked的值已从true更改为false,但panelButtonBar没有刷新。正如我所说,如果我将条件语句取出并且只是部分刷新panelButtonBar,则刷新有效,条件局部刷新则不然。我相信我的js是正确的。我试过了:
(viewScope.get("vsIsLocked")) ? "" : "panelButtonBar"
但是部分刷新似乎是完全刷新。
答案 0 :(得分:0)
你可能有点陷入“什么时候得到刷新”。 (viewScope.get("vsIsLocked")) ? "dummyField" : "panelButtonBar"
位于隐藏按钮中,并在该按钮刷新时进行计算。当您“按下”按钮时,您可以刷新dummyField或panelButtonBar,但不刷新按钮本身。所以你的病情没有得到评估。
您可以尝试将隐藏按钮放入panelButtonBar,或者将刷新定位到包含两者的内容。
<强>更新强>
目标属性仅在页面加载时进行评估,因此您需要为刷新目标分别使用一个按钮进行硬连线并计算渲染属性。因此,当刷新时,每次都会向浏览器发送一个不同的按钮。您可以使用带有参数数组的自定义控件作为目标,因此您的UI中只有一个控件