XPages应用程序布局:获取横幅链接中选定下拉项的单击值

XPages应用程序布局:获取横幅链接中选定下拉项的单击值,xpages,xpages-extlib,Xpages,Xpages Extlib,我有一个下拉列表,我想用它来选择用户想要工作的省份(是的,我在加拿大!) 我很难弄清楚如何获取单击的值,因为我想将该值放入会话范围变量中 下拉列表的代码目前就是这样构建的: <xe:this.bannerUtilityLinks> <xe:basicContainerNode submitValue="provinceSwitch"> <xe:this.children>

我有一个下拉列表,我想用它来选择用户想要工作的省份(是的,我在加拿大!)

我很难弄清楚如何获取单击的值,因为我想将该值放入会话范围变量中

下拉列表的代码目前就是这样构建的:

 <xe:this.bannerUtilityLinks>
        <xe:basicContainerNode
            submitValue="provinceSwitch">
            <xe:this.children>
                <xe:basicLeafNode label="Québec"></xe:basicLeafNode>
                <xe:basicLeafNode label="Ontario"
                    submitValue="Ontario">
                </xe:basicLeafNode>

                <xe:basicLeafNode label="Maritimes"
                    submitValue="Maritimes">
                </xe:basicLeafNode>

                <xe:basicLeafNode label="West"
                    submitValue="West">
                </xe:basicLeafNode>

            </xe:this.children>
            <xe:this.label><![CDATA[#{javascript:if(!!sessionScope.province) {
    sessionScope.province;
    } else {
    "Province";
    }}]]></xe:this.label>
        </xe:basicContainerNode>

<xe:basicLeafNode submitValue="langSwitch"
                            styleClass="lotusFirst">
                            <xe:this.label>
                                <![CDATA[#{javascript:if(!!sessionScope.lang)  {
    if(sessionScope.lang=="FR") {
        return "English";
    } else {
        return "Français";
    }
} else {
    return "English";
}}]]>
                            </xe:this.label>

                        </xe:basicLeafNode>

    <xe:this.bannerUtilityLinks>

我已经定义了一个eventHandler,用于选择语言:

<xp:eventHandler event="onItemClick" submit="false"
                refreshMode="partial" refreshId="PanelAll">
                <xe:this.action><![CDATA[#{javascript:var submittedValue=context.getSubmittedValue();
if(submittedValue=="langSwitch") {
    if(!!sessionScope.lang)  {
        if(sessionScope.lang=="FR") {
            sessionScope.lang = "EN";       
        } else {
            sessionScope.lang = "FR";
        }
    } else {
        //since the default is FR, the first time it is clicked means we want to go to English
        sessionScope.lang = "EN";  
    }
    return; 
}}]]>
                </xe:this.action>
</xp:eventHandler>

如何从下拉列表中获取所选项目值并对其进行操作?我需要设置会话范围变量并进行完全(或部分)刷新


谢谢:)

您必须将代码添加到您已有的onItemClick中,因为一个事件完成了应用程序布局的所有onclick事件。

嗨,Ben,我们在您从TLCC获得的Rapid XPages开发课程中介绍了这一点。请参阅mclick事件。这在模块7的应用程序布局设计框架课程中。您必须将代码添加到您已有的onItemClick中,因为一个事件会执行应用程序布局的所有onclick事件。霍华德,我完全忘了我有这个!!!我没有太多的时间来完成这门课程,因为我的项目比预期的要早很多。这些信息确实存在,而且非常有用。我想我会在接下来的几天内花时间把剩下的部分看完