2013-04-17 33 views
0

我有一個XPages應用程序,在我們公司採用Domino 8.5.3 UP1之前,通過URL參數定義了一個頁面>子頁面結構。現在我們有了UP1,我一直在羨慕xe:breadCrumbs控制。不熟悉xe:pageTreeNodes(我知道至少存在感謝我的XPages擴展庫副本),我想我會「給朋友打電話」。我在這個話題上找不到多少東西。我的問題是雙重的:xe:breadCrumb使用沒有樹節點?

  1. 如何應該一個實現頁面樹結構與XE正常使用:麪包屑控制?
  2. 使用我當前的設置(根頁面是標準頁面參數,子頁面是第二個自定義參數),我可以如何輕鬆地將我的設置用於xe:breadCrumbs?

在某些情況下,我非常樂意削減我的損失,只是在div中構建了一些計算xp:link控件的準麪包屑元素。由於機會出現,我想我會檢查並看看是否有更好的選擇。我知道這有點含糊,但我認爲這個想法是在這裏傳達的。

[編輯:] 我可能會問,這是否是更直接和專用於xe:navigator的東西。如果是這樣的話,那麼我可能會更悲傷一點,但不那麼困惑。 [/編輯]

+0

不知道你的問題到底是什麼。您可以使用樹對象構建任何內容:它們可以從bean(建議)或compositeData或重複(如果作爲對象數組處理)饋入。 –

+0

所以,我得到了沒有bean的頁面結構,沒有太多(實際上是任何東西)在composite page的根頁面級別。 對主內容使用xp:callback,綁定到「page」參數。所以我想我的問題是沒有任何當前的bean(我還沒有處理),我更關心的是「我怎麼實現它?」 @FrantisekKossuth你知道任何好的例子/演示db我可以看到這在行動?這可能會幫助我。 –

回答

0

樹節點很好。這是一個小例子。先決條件:

  • 所有文檔都在同一個數據庫中。不是一個大問題,只需更新href參數即可。
  • 文檔包含具有母文檔(所有級別)的ID和標籤(主題,標題)的字段
  • 有一個視圖「id」僅包含一個按文檔ID排序的列以打開它(Domino語法) - 另請參見: native Domino links and XPages
  • DDS是CURENT文檔的數據源
  • 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> 

最好的例子就是XPagesExt.nsf與EXTLIB分佈捆綁在一起。

+0

我認爲這有點清楚。我明白了爲什麼你推薦bean方法,通過它推動所有的導航邏輯,以減少在頁面級別的「思考」。我認爲我現在擁有的東西,我沒有設置一個簡單的實施,沒有一點額外的工作,所以我可能會回到我的下一個項目,看看我的需求。 與此同時,我可能只是_cheat_並使一個自定義控件包含一系列模擬xe:breadCrumbs的外觀和感覺的計算字段,但通過共享腳本使用我自己的計算關閉了參數。 –