我创建了一个xpage但是在重新加载页面时,此页面中的组合框是从select2picker comboBox中的数据库获取第一个值,我该如何解决这个问题?
<xp:scriptBlock id="scriptBlock1">
<xp:this.value>
<![CDATA[XSP.addOnLoad(
function() {
x$( "#{id:listBoxProperties}").on("change", function(e) {
XSP.partialRefreshPost("#{id:dataView1}" )
})
}
);
]]></xp:this.value>
</xp:scriptBlock>
<xp:comboBox id="listBoxProperties"
value="#{sessionScope.searchVwCompanyOwner}">
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:var listvalues = new Array();
try { listvalues = (getSettingsList("Global.Entity"));
listvalues;
} catch(e) {print("ERROR in Company: " + e);}}]]>
</xp:this.value>
</xp:selectItems>
</xp:comboBox>
<bx:select2PickerCombo id="select2PickerCombo1"
for="listBoxProperties" allowClearing="true"
placeHolder="-company Owner-" binding="#{listBoxProperties}">
</bx:select2PickerCombo>
此代码正在重新加载一次页面,但刷新一次以上是从数据库获取第一个值。
答案 0 :(得分:2)
使用 viewScope 变量代替sessionScope变量:
value="#{viewScope.searchVwCompanyOwner}"
SessionScope变量保留整个用户会话的值,包括页面刷新,而viewScope变量仅适用于当前的XPage。
答案 1 :(得分:0)
以下是另外两个选项: