在加载页面时摆脱组合框的价值

时间:2016-09-12 06:53:00

标签: javascript xpages

我创建了一个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>

此代码正在重新加载一次页面,但刷新一次以上是从数据库获取第一个值。

2 个答案:

答案 0 :(得分:2)

使用 viewScope 变量代替sessionScope变量:

value="#{viewScope.searchVwCompanyOwner}"

SessionScope变量保留整个用户会话的值,包括页面刷新,而viewScope变量仅适用于当前的XPage。

答案 1 :(得分:0)

以下是另外两个选项:

  1. 将控件更改为单个值列表框,或
  2. 在您的计算中,或作为单独的条目,添加空值“'作为第一个值。