1

我正在使用 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 代码。我将不胜感激有关使其正常工作的任何想法或想法。谢谢。

4

1 回答 1

4

basicTreeNode 上的 onClick 事件用于运行客户端 javascript。您将无法放置任何 SSJS,例如您描述的 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>
于 2012-02-15T16:56:12.613 回答