我試圖通過獲取NotesViewEntryCollection,然後循環這個集合來構建一個數組,其中的每個值在一個重複控制中顯示一個視圖的子集數組包含與條目中列值對應的數組。 <xp:text escape="true" id="computedField1" value="#{javascript:rowData[rowIndex][0]}"></xp:text>
重複控制綁定到重複集合中返回字符串的數組
的錯誤是::
未知的成員 '0' 在Java類 'java.lang.String中'
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> <xp:repeat id="repeat1" rows="30" var="rowData" indexVar="rowIndex"> <xp:this.value><![CDATA[#{javascript: var view:NotesView = database.getView("CatalogEntries"); var entryColl:NotesViewEntryCollection = view.getAllEntriesByKey(compositeData.catalog, true); if (entryColl.getCount() == 0) return ["empty"]; var entries = []; var columnVals = []; var entry:NotesViewEntry = entryColl.getFirstEntry(); do { columnVals = []; columnVals.push(entry.getColumnValues()[0]); columnVals.push(entry.getColumnValues()[1]); columnVals.push(entry.getColumnValues()[2]); columnVals.push(entry.getColumnValues()[3]); columnVals.push(entry.getColumnValues()[4]); columnVals.push(entry.getColumnValues()[5]); entries.push(columnVals); entry = entryColl.getNextEntry(entry); } while(!(entry == null)) return entries;}]]></xp:this.value> <xp:text escape="true" id="computedField1" value="#{javascript:rowData[rowIndex][0]}"></xp:text> </xp:repeat> </xp:view>
但我在這條線得到一個錯誤
有關如何解決此問題的任何想法?
我完全同意Lothar。具有'keys'屬性集的dominoView幾乎可以做你正在做的事情,但是使用ViewNavigator並限制條目數量是爲了獲得更好的性能而從運行時收集的,以及回收視圖條目和視圖條目值(可以包括日期/時間,在回收ViewEntry時不會自動回收)。只有在絕對需要時手動迭代ViewEntries。 'getColumnValues()'必須提取所有列值,所以即使只需要一列,實際上也必須全部得到它們,所以不要在那裏保存。 –
完全同意這種方法。非常感謝你! – jpishko