我試圖在X頁面上生成分類列表的類別和子類別。到目前爲止,我嘗試了兩種方法:使用重複控件和自定義控件的遞歸
第一個工作是基於Jesse Gallagher in this blog post的代碼,並按照我想要的順序使用xe:outline控件輸出列表。但是,我希望能夠爲每個條目添加額外的功能和樣式(例如,編輯和刪除鏈接),但無法確定如何在大綱控件中呈現自定義控件。
第二種方法是試圖利用嵌套重複和自定義控件來生成列表,但對於我的生活,我不能完全得到這項工作,我不知道是否因爲它不會工作或我只是缺少一些基本的東西。對於XPage上的基本代碼是:
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:this.data>
<xp:dominoView var="Categories" viewName="vLUTopCat"></xp:dominoView>
</xp:this.data>
<xc:ccUI navigationPath="Admin/Main" pageName="Admin">
<xp:this.facets>
<xp:panel xp:key="facetMiddle">
<h2>Categories</h2>
<ul id="adminCatList">
<xp:repeat id="parentCat" rows="30" value="#{Categories}" var="DocCat" indexVar="catIdx" disableOutputTag="true">
<xc:ccCategoryList>
<xc:this.catID><![CDATA[#{javascript:DocCat.getColumnValue("docID")}]]></xc:this.catID>
<xc:this.catName><![CDATA[#{javascript:DocCat.getColumnValue("categoryName")}]]></xc:this.catName>
</xc:ccCategoryList>
</xp:repeat>
</ul>
</xp:panel>
</xp:this.facets>
</xc:ccUI>
和自定義控制(ccCategoryList)的代碼是:
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:text escape="true" id="computedField1"
value="#{compositeData.catName}" tagName="li" />
<xp:repeat id="rptSubCat" rows="30" var="subCat"
disableOutputTag="true">
<xp:this.facets>
<xp:text disableTheme="true" xp:key="header"
escape="false">
<xp:this.value><![CDATA[<ul>]]></xp:this.value>
</xp:text>
<xp:text disableTheme="true" xp:key="footer"
escape="false">
<xp:this.value><![CDATA[</ul>]]></xp:this.value>
</xp:text>
</xp:this.facets>
<xp:this.value><![CDATA[#{javascript:var tview = database.getView("vLUSubCat");
var v = compositeData.catID;
var vc:NotesViewEntryCollection = null;
if (v != null) {
vc = tview.getAllEntriesByKey(v);
}
vc}]]></xp:this.value>
<xc:ccCategoryList>
<xc:this.catID><![CDATA[#{javascript:subCat.getColumnValues()[3]}]]></xc:this.catID>
<xc:this.catName><![CDATA[#{javascript:subCat.getColumnValues()[1]}]]></xc:this.catName>
</xc:ccCategoryList>
</xp:repeat>
</xp:view>
所以我相關的問題是:
- 無論如何,在使用bean節點的xe:outline控件中輸出自定義控件?
- 我可以使用重複和自定義控件從視圖遞歸輸出數據,就像我可以使用bean節點一樣嗎?
- 有我俯瞰一個更好的替代方法(例如,在一個bean使用Java集合和重複控制?)
感謝
感謝您的想法邁克爾。我得出的結論是,我可能不得不建立自己的控制權,但只是作爲最後的手段,如果沒有什麼已經做我想做的事情。 – TrailDragon
你有沒有試過''?正如我所看到的,您使用視圖作爲數據源,爲什麼不使用viewControl來顯示數據。 –
我在嘗試重新編輯以前的評論後,無意中提交它! :( ForumView我曾考慮過,但目前類別之間的關係不是維護在一個傳統的Notes父子層次結構中,而更像是通過JOIN連接多個SQL表 - 與Jesse的組織結構圖視圖非常相似。如果有必要,還沒有完全排除它回到使用視圖。(這是我確切知道如何在PHP和mySQL中完成這些操作的場景之一,並且我相信我應該也可以在XPages中完成這項工作,如果這樣做合理的話。) – TrailDragon