2013-03-01 62 views
0

我意識到我的問題對於動態添加導航項目太模糊,所以我正在重寫這個問題。學習如何使用xe:dominoViewEntriesTreeNode

我已經從xpages中發現了xe:dominoViewEntriesTreeNode控件。我想我可以使用它來根據視圖中的條目將導航項添加到導航器控件中。

我很努力地找到很多文件或資源的方式,打破如何做到這一點。任何人都可以給我一個很好的參考或示例代碼?

+0

您是否在使用擴展庫? – 2013-03-01 04:50:14

+0

是的,我正在使用擴展庫 – 2013-03-01 05:11:40

回答

1

您可以使用dominoViewListTreeNode基於數據庫中的視圖(而不是這些視圖中的文檔)構建菜單。

這裏是一個使用xe:dominoViewListTreeNode動態建立一個基於名爲「Test *」的所有視圖(在filter屬性中使用正則表達式)的菜單的例子。從菜單中選擇菜單項時,視圖的名稱將被提交給服務器(對viewEntry.getName()方法使用EL表示法)。

該示例還包含一個onItemClick事件處理程序,它將視圖的名稱「捕獲」爲提交的值並將其存儲在sessionScope變量中。然後事件處理程序重定向到一個views.xsp XPage,它可能包含一個動態視圖面板控件,您可以在其中使用sessionScope變量來控制要顯示的視圖。

sessionScope變量也用於將所選菜單項標記爲「已選中」。

<xe:navigator id="navigator1"> 
    <xe:this.treeNodes> 
     <xe:dominoViewListTreeNode filter="Test.*" submitValue="#{viewEntry.name}" var="viewEntry"> 
      <xe:this.selected><![CDATA[#{javascript:viewEntry.getName() == sessionScope.clickedView}]]></xe:this.selected> 
     </xe:dominoViewListTreeNode> 
    </xe:this.treeNodes> 

    <xp:eventHandler event="onItemClick" submit="true" refreshMode="complete"> 
     <xp:this.action> 
      <![CDATA[#{javascript:sessionScope.clickedView = context.getSubmittedValue(); 
     context.redirectToPage("views.xsp");}]]> 
     </xp:this.action> 
    </xp:eventHandler> 

</xe:navigator> 

取而代之的是onItemClick方法來重定向到一個XPage,你可以計算XE的href屬性:dominoViewListTreeNode返回一個XPage的名稱。

我有一個簡短的演示文稿,名爲「XPages Extension Library - Create an app in 1 hour (almost)」,介紹了這種技術(和其他技術)。

1

我假設您在您的網頁上有一個帶有導航項目的區域,例如鏈接到一些帶有鏈接文本的頁面? 然後,我會用一個數據源/ javascript源代碼重複控制,從您的配置文件或其他東西中返回文檔項目值。 如果你不是重複控制,那麼你應該考慮閱讀:http://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Work_with_repeat_controls 在這個頁面上還有一個示例處理配置文件。順便說一句:使用配置文件始終是一個柺杖,所以請考慮你的「正常」配置文件,而不是。

+0

好了,然後,我的回答沒有任何意義在你的問題修訂後;-) – 2013-03-01 17:43:31