2012-12-14 53 views
0

我正在努力將XPage前端放在具有許多視圖的現有Notes應用程序上。現在,我正在使用現有App/Data中的單獨NSF構建XPage和自定義控件(CC)。 (沒有要求,但是我提供這個以防萬一它影響你的答案。)我是否需要爲我的30多個Notes視圖中的每一個單獨使用XPage?

規劃維護,我希望能夠構建最少的可重用XPage/CC。我意識到我可能需要爲每個基礎Notes視圖單獨使用CC,但我希望重用一個或幾個XPage,並在運行時決定應在「內容」面板/ div中顯示哪些視圖。 (一個「計算的自定義控件」?)

此外,我希望提供一個左側菜單/ XPage視圖列表,它將(1)允許通過點擊進行視圖選擇和(2)可視地指示哪個視圖是選擇(再次,定位的可重用性...不是爲每個視圖的菜單。)

(注應用平行:在左框架的輪廓和從輪廓選擇用於裝載視圖的內容幀框架集)

任何建議,資源,鏈接,指針等將非常感激。

此外,在您的回覆中,請假設我無法使用擴展庫。

謝謝你幫助一個顯然是新的XPage開發者。

+0

爲什麼你不能夠使用擴展庫(或升級包1)? –

+0

該應用程序將分發,我無法控制或指示客戶安裝擴展庫。我需要一個「最低公分母」解決方案。我希望運行Domino 8.5及更高版本。 –

+0

我想我可以問我的問題的另一種方式是,開發人員在擴展庫的出現之前如何處理XPages中不重要的視圖數量? –

回答

3

你可以使用URL參數來控制視圖將顯示查閱這些記錄。 要到這一點,你可以創建一個具有計算這樣的列的XPage:

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 

<xp:viewPanel rows="30" id="viewPanel1"> 
    <xp:this.data> 
     <xp:dominoView var="view1" viewName="All"></xp:dominoView> 
    </xp:this.data> 
    <xp:this.facets> 
     <xp:pager partialRefresh="true" layout="Previous Group Next" 
      xp:key="headerPager" id="pager1"> 
     </xp:pager> 
    </xp:this.facets> 

    <!-- Column 1 --> 
    <xp:viewColumn id="viewColumn1" 
     columnName="#{javascript:view1.getColumnNames().get(0)}"> 
     <xp:this.rendered><![CDATA[#{javascript:view1.getColumnCount() > 0}]]></xp:this.rendered> 
     <xp:viewColumnHeader id="viewColumnHeader1" 
      value="#{javascript:view1.getColumnNames().get(0)}"> 
     </xp:viewColumnHeader> 
    </xp:viewColumn> 

    <!-- Column 2 --> 
    <xp:viewColumn id="viewColumn2" 
     columnName="#{javascript:view1.getColumnNames().get(2)}"> 
     <xp:this.rendered><![CDATA[#{javascript:view1.getColumnCount() > 1}]]></xp:this.rendered> 
     <xp:viewColumnHeader id="viewColumnHeader2" 
      value="#{javascript:view1.getColumnNames().get(2)}"> 
     </xp:viewColumnHeader> 
    </xp:viewColumn> 

</xp:viewPanel> 

</xp:view> 

現在你可以用URL打開的XPage

http://example.com/yourdb.nsf/view.xsp?viewName=[NAME OF THE VIEW] 

此外,您可以在的databaseName參數添加到使用另一個數據庫的視圖。 其他屬性也可以計算(分類,排序等)。

2

考慮使用重複控件而不是視圖面板。這使您可以充分靈活地表達數據,而不是受限於視圖面板的行爲和假設。這樣可以更輕鬆地設計一個足夠靈活的單頁來顯示任何數據子集。

+0

謝謝,蒂姆。我今天會看看。 –

0

最好的解決辦法是創建2個服務&一個頁面:

  1. 創建的服務來回報視圖內容JSON(通過查看屬性或代理人或Web服務或XPAGE,任何您填寫最適合你)
  2. 創建的服務來回報的觀點左側菜單/列表作爲JSON
  3. 用JavaScript核心,可以加載從點1和2的數據,並建立UI創建的XPage。 jQuery & jQuery UI會幫助你。

該解決方案將是靈活的,你長大後會遇到

相關問題