xe:breadCrumb使用没有树节点?

时间:2013-04-17 18:53:19

标签: xpages

我有一个带有页面>的XPage应用程序在我们公司采用Domino 8.5.3 UP1之前由URL参数定义的子页面结构。现在我们确实有了UP1,我一直在盯着xe:breadCrumbs控件,有点羡慕。不熟悉xe:pageTreeNodes(我知道至少存在感谢我的XPages扩展库副本),我想我会给朋友打电话"。我在这个话题上找不到太多东西。我的问题有两方面:

  1. 应该如何一个实现页面树结构才能正确使用xe:breadCrumbs控件?
  2. 使用我当前的设置(根页面是标准页面参数,子页面是第二个,自定义参数),我可以轻松地使用xe:breadCrumbs设置吗?
  3. 在某些时候,我更愿意削减我的损失,并在div中使用一些计算的xp:link控件构建一个准面包屑元素。自从机会出现以来,我想我会检查一下是否有更好的选择。我知道这有点模糊,但我认为这个想法是在这里传达的。

    [编辑:] 我应该问一下这是否更直接,并且与xe:navigator一起使用。如果是这样,那么我可能会更难过,但有点不那么困惑。 [/编辑]

1 个答案:

答案 0 :(得分:0)

树节点很好。这是一个小例子。先决条件:

  • 所有文档都在同一个数据库中。这不是一个大问题,只需相应地更新href params。
  • 文档包含具有父文档(所有级别)的ID和标签(主题,标题)的字段
  • 有观点" id"只包含一个按文档&id; id分类的列来打开它(Domino语法) - 另请参阅:native Domino links and XPages
  • dds是当前文件的数据源
  • ddsParent是父文档的数据源

    <xe:breadCrumbs id="breadCrumbs1">
    
    <xe:this.treeNodes>
    
        <xe:basicLeafNode label="Top document: ${dds.fld_TopLabel}">
            href="/id/${dds.fld_TopID}">
        </xe:basicLeafNode>
        <xe:basicLeafNode label="Sub1: ${ddsParent.fld_Label}">
            <xe:this.href><![CDATA[#{javascript:"/0/" + ddsPonuka.getDocument().getUniversalID()}]]></xe:this.href>
        </xe:basicLeafNode>
        <xe:basicLeafNode label="Current level: ${dds.fld_Label}">
        </xe:basicLeafNode>
    </xe:this.treeNodes>
    

您必须为每个XPage更改此设置。当然,您可以使用参数将其设置为自定义控件,但最终会在每个XPage上使用自定义控件进行大致相同结构的参数。

最好的选择是使托管bean可以在某种排序中进行配置并返回ExtLib树对象。然后您的来源将缩减为:

<xe:beanTreeNode nodeBean="my.bean.Class"></xe:beanTreeNode>

最好的例子是与ExtLib发行版捆绑在一起的XPagesExt.nsf。