我正在使用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代码。我很欣赏任何有关这项工作的想法或想法。感谢。
答案 0 :(得分:4)
basicTreeNode上的onClick事件用于运行clientSide 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>