我试图通过获取NotesViewEntryCollection来显示重复控件中视图的子集,然后循环遍历此集合以构建一个数组,其中数组中的每个值都包含与条目中的列值对应的数组。
<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>
但我在这一行收到错误:
<xp:text escape="true" id="computedField1" value="#{javascript:rowData[rowIndex][0]}"></xp:text>
错误是:
未知会员&#39; 0&#39;在Java类&#39; java.lang.String&#39;
中
关于如何解决此问题的任何想法?
答案 0 :(得分:2)
我觉得这可以 - 不应该! - 简化。基本思想是,您可以将Domino视图数据源或整个NotesViewEntryCollection
对象原样提供给repeat
对象。这样,您最终得到代表单个rowData
对象的NotesViewEntry
。然后,您的computedField
值可以直接引用条目columnValues
向量中的任何元素。这样你甚至不需要费心回收任何物品:
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.data>
<xp:dominoView var="myView" viewName="CatalogEntries" keys=compositeData.catalog keysExactMatch="true">
</xp:dominoView>
</xp:this.data>
<xp:repeat id="repeat1" rows="30" var="rowData" value="#{myView}">
<xp:panel id="pnInner">
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{javascript:
if(rowData){
return rowData.getColumnValues()[0].toString();
}else{
return "empty";
}}]]>
</xp:this.value>
</xp:text>
</xp:panel>
</xp:repeat>
</xp:view>
过滤您的视图数据是在数据源级别完成的。
答案 1 :(得分:0)
在你的push方法中,你不传入数组索引。
action.php: $var=$_POST['name']; echo $var;
应该是
columnVals.push(entry.getColumnValues()[0]);
霍华德