在XPage中重复控制内部重复控制

时间:2014-06-13 07:08:39

标签: xpages lotus-notes lotus-domino lotus

我在另一个重复控件中有一个重复控制。这个概念是创造一个类似日历的东西。所以我想创建一个2维重复,我使用一个重复来垂直创建“行”,并在其中另一个重复创建水平列。第二个重复控件在div控件内有一个输入文本控件。代码如下:

    <xp:repeat id="repeat4" rows="30">
        <xp:this.value>
<![CDATA[#{javascript:var projects2 = new Array("Project 1","Project 2");
    return projects2;}]]>
</xp:this.value>
<xp:repeat id="repeat3" rows="31">
<xp:this.value><![CDATA[#{javascript:var inBoxes = new java.util.Vector();
    for(i=1;i<=5;i++){
        inBoxes.add(i);
    }

    return inBoxes;}]]>
</xp:this.value>
    <xp:div id="DivInputs" styleClass="DivInputs">
  <xp:inputText id="inputText1"
 style="width:100%">
 </xp:inputText>
    </xp:div>
    </xp:repeat>
   </xp:repeat>

我现在想要获取输入字段的值,所以如果我使用它,它可以工作:

repeat4.setRowIndex(0); 
repeat3.setRowIndex(0); 
sum = sum + inputText1.getValueAsString();

但是当我执行此循环时,它只获得第一行单元格值:

for(i=0;i<2;i++){
repeat4.setRowIndex(i);
repeat3.setRowIndex(0);
sum = sum + inputText1.getValueAsString();
}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您需要改变方法。应该使用绑定来执行值,而不是getValue。所以做一些像

这样的事情
  var x = [[0,0,0,0,0,0,0],[...],....];
  viewScope.calendar = x;

然后将控件绑定到变量。这消除了检查确切位置或变量名称的需要。