Xpages ApplicationLayout控件(extlib)中的标题栏选项卡生成无效代码

Xpages ApplicationLayout控件(extlib)中的标题栏选项卡生成无效代码,xpages,Xpages,我正在使用ApplicationLayout控件(8.5.3 UP1),并添加了基本节点以显示为选项卡。我希望选项卡在单击时运行JavaScript来设置sessionScope变量。我在onClick中有一个sessionScope.put,但单击选项卡时变量设置不正确 更糟糕的是,当我查看页面的源代码时,我看到的选项卡是: <ul id="view:_id1:_id2:applicationLayout1_tb" class="lotusTabs lotusTabsIndented"&

我正在使用ApplicationLayout控件(8.5.3 UP1),并添加了基本节点以显示为选项卡。我希望选项卡在单击时运行JavaScript来设置sessionScope变量。我在onClick中有一个sessionScope.put,但单击选项卡时变量设置不正确

更糟糕的是,当我查看页面的源代码时,我看到的选项卡是:

<ul id="view:_id1:_id2:applicationLayout1_tb" class="lotusTabs lotusTabsIndented">

 <li class="lotusTabs li">
  <div>
   <a style="text-decoration:none">Ft. Pierce</a>
  </div>
 </li>

 <li class="lotusTabs li">
  <div>
   <a href="javascript:;" onclick="javascript:Ft. Pierce" style="text-decoration:none">Naperville</a>
  </div>
 </li>

 <li class="lotusTabs li">
  <div>
   <a href="javascript:;" onclick="javascript:Naperville" style="text-decoration:none">Chicago</a>
  </div>
 </li>
</ul>
请注意,第一个li没有href或onclick代码,而另外两个li条目的href和onclick参数似乎不正确(并且onclick与标签不匹配)


从我在控件中看到的情况来看,这应该是可行的。如果节点的href属性中没有任何内容,它应该执行onClick代码。我很感激能有任何想法或想法让这个工作。谢谢。

基本客户端节点上的onClick事件用于运行客户端javascript。您将无法放置任何SSJ,如您描述的sessionScope.put

要执行所需操作,需要使用basicTreeNode的submitValue属性,然后添加脚本,将sessionScope设置为applicationLayout控件的onItemClick事件

<xe:applicationLayout id="applicationLayout1">
        <xe:this.configuration>
            <xe:oneuiApplication>
                <xe:this.titleBarTabs>
                    <xe:basicLeafNode label="Tab 1" submitValue="tab1" />
                    <xe:basicLeafNode label="Tab 2" submitValue="tab2" />
                    <xe:basicLeafNode label="Tab 3" submitValue="tab3" />
                </xe:this.titleBarTabs>
            </xe:oneuiApplication>
        </xe:this.configuration>
        <xp:eventHandler event="onItemClick" submit="true" refreshMode="complete">
            <xe:this.action><![CDATA[#{javascript:sessionScope.put("varName",context.getSubmittedValue())}]]></xe:this.action>
        </xp:eventHandler>
    </xe:applicationLayout>

基本客户端节点上的onClick事件用于运行客户端javascript。您将无法放置任何SSJ,如您描述的sessionScope.put

要执行所需操作,需要使用basicTreeNode的submitValue属性,然后添加脚本,将sessionScope设置为applicationLayout控件的onItemClick事件

<xe:applicationLayout id="applicationLayout1">
        <xe:this.configuration>
            <xe:oneuiApplication>
                <xe:this.titleBarTabs>
                    <xe:basicLeafNode label="Tab 1" submitValue="tab1" />
                    <xe:basicLeafNode label="Tab 2" submitValue="tab2" />
                    <xe:basicLeafNode label="Tab 3" submitValue="tab3" />
                </xe:this.titleBarTabs>
            </xe:oneuiApplication>
        </xe:this.configuration>
        <xp:eventHandler event="onItemClick" submit="true" refreshMode="complete">
            <xe:this.action><![CDATA[#{javascript:sessionScope.put("varName",context.getSubmittedValue())}]]></xe:this.action>
        </xp:eventHandler>
    </xe:applicationLayout>


谢谢,德克兰,这很有效!有一个参考说明:sessionScope.put需要在context.getSubmittedValue()之前输入变量的名称。如果您没有弄错,我输入得太快,忘记了。我会更新答案以免引起混乱谢谢,德克兰,这很有效!有一个参考说明:sessionScope.put需要在context.getSubmittedValue()之前输入变量的名称。如果您没有弄错,我输入得太快,忘记了。我会更新答案以免引起混乱