如何在应用程序布局控件中保持标题栏选项卡处于活动状态?

时间:2012-04-16 22:30:59

标签: xpages xpages-extlib

我有一个使用Application Layout Control的应用程序。 UI在标题栏部分中定义了两个选项卡。 UI还在侧栏中包含导航器控件,允许用户选择链接以打开其他页面。我遇到麻烦的是当用户点击当前导航器中的链接时,将当前标签设置为活动标签。

2 个答案:

答案 0 :(得分:5)

Application Layout Control的“configuration”属性是一个复杂类型,它反过来支持定义布局本身的所有属性。其中一个属性是“navigationPath”。如果Netflix在其网站上使用此控件,则在查看Ghostbusters的电影信息页面时该属性的值可能如下所示:

/home/genres/comedies/541018

因此,可以将此属性视为使用* nix文件路径语法描述页面在“站点地图”中的当前位置的方法。

每个titleBarTab也是一个复杂的类型;其中一个属性是“选择”。此属性旨在赋予与整个布局的当前navigationPath的部分或全部匹配的值。因此,继续Netflix示例,您可以像这样定义标签:

<xe:this.titleBarTabs>
    <xe:pageTreeNode
        page="/genre.xsp"
        label="Action"
        queryString="genre=action"
        selection="/home/genres/action/*" />
    <xe:pageTreeNode
        page="/genre.xsp"
        label="Comedy"
        queryString="genre=comedies"
        selection="/home/genres/comedies/*" />
    <xe:pageTreeNode
        page="/genre.xsp"
        label="Drama"
        queryString="genre=dramas"
        selection="/home/genres/dramas/*" />
</xe:this.titleBarTabs>

在Ghostbusters的页面上,因为布局的navigationPath属性与为标签为“喜剧”的pageTreeNode的selection属性定义的模式匹配,所以该选项卡将显示为选中状态,但其他选项卡不显示。

也许值得注意的是,布局配置还包括一个名为“defaultNavigationPath”的属性。如果navigationPath属性没有值,则将此属性的值与每个titleBarTab的selection属性进行比较。因此,您通常希望将其设置为一个路径,使第一个选项卡显示为选中状态。

答案 1 :(得分:0)

布鲁斯,如果我正确读到这个问题,我不久就遇到了类似的问题。这有帮助吗? Setting a sessionScope variable for a TitleBar tab