0

当社が Domino 8.5.3 UP1 を採用する前に、URL パラメータによって定義されたページ > サブページ構造を持つ XPages アプリケーションを使用しています。UP1 ができたので、少し羨ましい気持ちで xe:breadCrumbs コントロールに注目していました。xe:pageTreeNodes (XPages Extension Library のコピーのおかげで、少なくとも存在することは知っています) に慣れていないので、「友人に電話する」ことにしました。このトピックについてはあまり見つかりませんでした。私の質問は 2 つあります。

  1. xe:breadCrumbs コントロールで適切に使用するには、ページ ツリー構造をどのように実装する必要がありますか?
  2. 現在の設定 (ルート ページが標準のページ パラメータ、サブページが 2 番目のカスタム パラメータ) で、xe:breadCrumbs で自分の設定をどれだけ簡単に使用できますか?

ある時点で、損失を減らして、div 内のいくつかの計算された xp:link コントロールを使用して準パンくずリスト要素を構築することを厭いません。機会があったので、もっと良い選択肢がないか調べてみようと思いました。これは少し漠然としていますが、アイデアはここで伝えられていると思います。

[編集:] これが xe:navigator でより直接的かつ排他的に使用されるものであるかどうかをおそらく尋ねる必要があります。もしそうなら、私はもう少し悲しむかもしれませんが、少し混乱することはありません. [/編集]

4

1 に答える 1

0

ツリーノードは問題ありません。ここに小さな例があります。前提条件:

  • すべてのドキュメントが同じデータベースにあります。大きな問題ではありません。必要に応じて href パラメータを更新してください。
  • ドキュメントには、親ドキュメント (すべてのレベル) の ID とラベル (件名、タイトル) を持つフィールドが含まれています
  • ドキュメントの ID でソートされた 1 つの列のみを含むビュー「id」があります (Domino 構文) -ネイティブの Domino リンクと 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 です。

于 2013-04-18T15:51:36.833 に答える