我正在开发一个大型的全球应用程序,其中包括从低带宽区域访问.因此,我想在所有复杂的隐藏/计算时使用最少的SSJS或部分刷新.到目前为止,这是一个简单的"隐藏/何时":
在XPage的onClientLoad中,运行以下代码:
// "getRadioValue" is a simple script to return the value of a radio button
var v_value = getRadioValue("#{id:radioButton}");
v_div = '#{javascript:getClientId("radioButtonPanel")}';
// show or hide div simply use dojo to change the display of the panel
if (v_value == 'Yes') {
showDiv(v_div);
} else {
hideDiv(v_div);
};
Run Code Online (Sandbox Code Playgroud)对于新文档,onClientLoad脚本将成功隐藏"radioButtonPanel".将单选按钮更改为"是"将显示radioButtonPanel,就像单击"否"将隐藏它一样.它很棒!:-)
但是,一旦文档被保存并以读取模式重新打开,onClientLoad CSJS事件应该读取文档中保存的值,并决定是否显示该面板.在编辑模式下打开文档时,onClientLoad将触发,读取radioButton值并成功显示或隐藏面板.
这是我到目前为止尝试过的,让它在读取模式下工作:
添加一个老式的"div"来计算样式(这是我以前在XPages之前做的事情),但由于我不能再通过html,我似乎无法获得CSJS的风格计算.理想情况下,我可以这样做:
<div id="radioButtonPanel" style="<ComputedValue>">
Run Code Online (Sandbox Code Playgroud)
ComputedValue将读取文档的后端值,并决定不添加任何内容或"display:none".
请注意,我不想使用viewScopes,因为这个长形式需要很多其他的hide/when.
有没有办法让这个100%的CSJS?我觉得我非常接近,但我想知道在整个过程中我是否只是缺少一些东西.
xpages ×1