Xpages 重复获取下一行数据或文档的句柄
Xpages get a handle on next rowData or Doc in a repeat
在我的重复控件中,我希望能够处理下一行中的数据,以便修改当前行中显示的数据(我有上下移动操作,但我没有如果无法移动,则希望显示它们)。
看来我应该可以做到这一点。可能我不能从内部重复本身,因为当它正在写重复时,它不会知道下一个重复的数据。但是不应该有一个相当简单的方法来获取下一个文档吗?
这是我的重复控件的简化版本:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:repeat
id="repeat1"
var="rowData"
indexVar="repeatIndex"
value="#{view1}"><xp:this.facets>
<xp:text
disableTheme="true"
xp:key="header"
escape="false"
>
<xp:this.value><![CDATA[<table class='lotusTable repeatRowColors' border='0' cellspacing='0' cellpadding='0' width='800px'>
<tr class ='lotusFirst lotusSort scope='col'>
<th class ='loutsFirstCell'></th>
<th class ='loutsFirstCell'>Category</th>
<th class ='lotusCenter'>Move</th>
<th>Task</th>
</tr>
</thead>]]></xp:this.value>
</xp:text>
<xp:text
disableTheme="true"
xp:key="footer"
escape="false"
>
<xp:this.value><![CDATA[</table>]]></xp:this.value>
</xp:text>
</xp:this.facets>
<xp:this.rows><![CDATA[#{javascript:var rows:Integer = viewScope.get("rows");
if (rows == null)
{return 5}
else
{return rows}}]]></xp:this.rows>
<xp:tr id="rowDataContainer">
<xp:td
style="width:55px;min-width:55px;max-width: 55px;">
<xp:text
escape="true"
id="computedField2">
<xp:this.value><![CDATA[#{javascript:rowData.getColumnValue("category");}]]>
</xp:this.value>
</xp:text>
</xp:td>
</xp:tr>
</xp:repeat>
</xp:view>
您可以获得视图的下一行 在 中重复
var nextRow = view1.getAllEntries().getNthEntry(repeatIndex + 2);
"view1" 是分配给重复控制的 xp:dominoView,"repeatIndex" 是 xp:repeat 的 indexVar
。
您可以获取下一行文档的 UniqueID,然后使用
nextRow ? nextRow.getUniversalID() : ""
例如表单字段
nextRow ? nextRow.getDocument().getItemValueString("Form") : ""
因此,您得到前一行
var prevRow = view1.getAllEntries().getNthEntry(repeatIndex);
在我的重复控件中,我希望能够处理下一行中的数据,以便修改当前行中显示的数据(我有上下移动操作,但我没有如果无法移动,则希望显示它们)。
看来我应该可以做到这一点。可能我不能从内部重复本身,因为当它正在写重复时,它不会知道下一个重复的数据。但是不应该有一个相当简单的方法来获取下一个文档吗?
这是我的重复控件的简化版本:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:repeat
id="repeat1"
var="rowData"
indexVar="repeatIndex"
value="#{view1}"><xp:this.facets>
<xp:text
disableTheme="true"
xp:key="header"
escape="false"
>
<xp:this.value><![CDATA[<table class='lotusTable repeatRowColors' border='0' cellspacing='0' cellpadding='0' width='800px'>
<tr class ='lotusFirst lotusSort scope='col'>
<th class ='loutsFirstCell'></th>
<th class ='loutsFirstCell'>Category</th>
<th class ='lotusCenter'>Move</th>
<th>Task</th>
</tr>
</thead>]]></xp:this.value>
</xp:text>
<xp:text
disableTheme="true"
xp:key="footer"
escape="false"
>
<xp:this.value><![CDATA[</table>]]></xp:this.value>
</xp:text>
</xp:this.facets>
<xp:this.rows><![CDATA[#{javascript:var rows:Integer = viewScope.get("rows");
if (rows == null)
{return 5}
else
{return rows}}]]></xp:this.rows>
<xp:tr id="rowDataContainer">
<xp:td
style="width:55px;min-width:55px;max-width: 55px;">
<xp:text
escape="true"
id="computedField2">
<xp:this.value><![CDATA[#{javascript:rowData.getColumnValue("category");}]]>
</xp:this.value>
</xp:text>
</xp:td>
</xp:tr>
</xp:repeat>
</xp:view>
您可以获得视图的下一行 在 中重复
var nextRow = view1.getAllEntries().getNthEntry(repeatIndex + 2);
"view1" 是分配给重复控制的 xp:dominoView,"repeatIndex" 是 xp:repeat 的 indexVar
。
您可以获取下一行文档的 UniqueID,然后使用
nextRow ? nextRow.getUniversalID() : ""
例如表单字段
nextRow ? nextRow.getDocument().getItemValueString("Form") : ""
因此,您得到前一行
var prevRow = view1.getAllEntries().getNthEntry(repeatIndex);