从应用程序布局横幅打开 XPage

Open an XPage from the Application Layout Banner

我正在使用应用程序布局控件并在 bannerUtility links 中设置了一个 basicLeafNode。我想在单击 link 'Meine Anmeldungen' 时打开另一个 XPage (MeineAnmeldung.xsp)。

<bx:this.bannerUtilityLinks>
<xe:basicLeafNode
    label="Meine Anmeldungen">
    <xe:this.rendered><![CDATA[#{javascript:context.getUser().getRoles().contains('[CreateAnmeldung]')}]]></xe:this.rendered>
    <xe:this.onClick><![CDATA[#{javascript:context.redirectToPage("MeineAnmeldungen.xsp")}]]></xe:this.onClick>
</xe:basicLeafNode>

但是,正如我所发现的,basicLeafNode 上的 onCLick 事件严格来说是 CSJS,我认为这就是我遇到问题的原因。

我是不是在错误的地方尝试这样做?老实说,我不明白顶部所有这些不同栏之间的区别:Placebar、Search Bar、Title Bar、mastHeader。不知道哪个能做什么,我正在尝试使用一个非常简单的 UI 来避免混乱。

或者有没有办法使用 CCJS 进行重定向?也许通过重新计算一个URL,我也不确定如何计算。

您可以使用 location.href=... 通过 CSJS 重定向。CSJS 是 basicLeafNode 的所有 onClick 事件。

应用程序布局控件本身在“事件”选项卡上有一个 onItemClick 事件。这将允许您触发 SSJS 并使用 context.getSubmittedValue() 检查 basicLeafNode 的 submitValue 属性(您需要添加它)。

TitleBar tabs in ApplicationLayout control (extlib) generating invalid code

改为使用 pageTreeNode。这是一个例子:

<xe:this.bannerUtilityLinks>
    <xe:pageTreeNode label="Meine Anmeldungen" page="/MeineAnmeldungen.xsp.xsp"></xe:pageTreeNode>
</xe:this.bannerUtilityLinks>