可配置的XPages ApplicationLayout标题栏标签:如此接近,但是

时间:2014-12-03 15:14:03

标签: xpages xpages-extlib

我现在正在将应用程序布局的标题栏中的标签视为一个视图,但似乎正在管理所选的"选择"财产不是wotking。这是我在页面中的代码:

<xe:this.titleBarTabs>
                <xe:repeatTreeNode indexVar="1" var="tab">
                    <xe:this.children>
                        <xe:basicLeafNode label="#    {tab.label}"
                            submitValue="#{tab.label}"
                            onClick="#{javascript:sessionScope.selectedTab = tab.label;}">
                            <xe:this.href><![CDATA[#{javascript:
                               "home.xsp?action=openDocument&documentId=" + tab.unid;}]]>
                            </xe:this.href>
                            <xe:this.selected>
                                <![CDATA[#{javascript:tab.label==sessionScope.selectedTab;}]]>
                            </xe:this.selected>
                        </xe:basicLeafNode>
                    </xe:this.children>
                    <xe:this.value><![CDATA[#{javascript:getTabs();}]]></xe:this.value>
                </xe:repeatTreeNode>
            </xe:this.titleBarTabs>

这可能是因为Href和onClick不能同时存在或者我只是遗漏了什么吗?

像往常一样,万分感谢你的帮助。等不及要回来......

2 个答案:

答案 0 :(得分:1)

您必须决定当用户点击标题栏标签时会发生什么:

  • href
  • 中定义的开放网址

  • 执行 onClick 事件。

onClick的帮助提供了提示:

enter image description here

因此,在用户点击标签页并显示新内容后,您无法使用onClick和范围变量来显示选项卡

完成此任务

  • 将带有标签标记&tab=的网址参数tab.label添加到 href 网址
  • 如果当前标签标签等于标签网址参数
  • ,则在所选代码中返回true

您的href和所选属性将如下所示:

<xe:this.href><![CDATA[#{javascript:
    "home.xsp?action=openDocument&documentId=" + tab.unid + "&tab=" + tab.label}]]>
</xe:this.href>
<xe:this.selected>
    <![CDATA[#{javascript:tab.label === param.tab}]]>
</xe:this.selected>

请勿忘记在代码中删除 onClick 属性。你不再需要了它。

答案 1 :(得分:0)

按照Knut的建议(我认为)...注释掉basicLeafNode的onClick属性,并将其函数移动到xI:applicationLayout控件的onItemClick。

onItemClick的代码就是这样......

  var clickedTab = context.getSubmittedValue();
  sessionScope.selectedTab = clickedTab;