0

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

  1. 应该如何实现页面树结构以正确使用 xe:breadCrumbs 控件?
  2. 使用我当前的设置(根页面是标准页面参数,子页面是第二个自定义参数),我如何轻松地将我的设置与 xe:breadCrumbs 一起使用?

在某些时候,我非常愿意减少我的损失,只是在一个 div 中构建一个带有一些计算 xp:link 控件的准面包屑元素。既然机会出现了,我想我会检查一下,看看是否有更好的选择。我知道这有点含糊,但我认为这个想法是在这里传达的。

[编辑:]我可能应该问这是否是更直接和专门用于 xe:navigator 的东西。如果是这样的话,那我可能会更难过一点,但会少一点困惑。[/编辑]

4

1 回答 1

0

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

  • 所有文件都在同一个数据库中。不是什么大问题,只需相应地更新 href 参数。
  • 文档包含父文档(所有级别)的 ID 和标签(主题、标题)字段
  • 视图“id”仅包含按文档 ID 排序的一列以打开它(Domino 语法) - 另请参阅:本机 Domino 链接和 XPage
  • 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。

于 2013-04-18T15:51:36.833 回答