我有一个xpages,我有一个重复控件,我添加了一个按钮来增加重复次数。 在重复中我有一个inputText和一个ComputedField。我想获取每个inputText的ID并使用它做一些事情,也许添加它们。我为repeat添加了一个索引,inputText的标签是:input $(index)。我想用getComponent访问("输入" +索引),但它说:getComponent为null。为什么呢?
inputText id是什么?
P.S。这是代码:
<xp:this.beforePageLoad><![CDATA[#{javascript:sessionScope.dynaField=parseInt("1")}]]></xp:this.beforePageLoad>
<xp:div style="text-align:center">
<xp:inputText id="number" defaultValue="100">
<xp:this.converter>
<xp:convertNumber type="number" integerOnly="true"></xp:convertNumber>
</xp:this.converter>
</xp:inputText></xp:div>
<xp:panel id="Panel_All" style="text-align:center">
<xp:repeat id="repeat1" var="testCollection" indexVar="index"
value="#{javascript:parseInt(sessionScope.dynaField)}" rows="120"
style="border:1pt" repeatControls="false" first="0">
<xp:inputText id="input${index}">
<xp:eventHandler event="onchange" submit="true"
refreshMode="partial" refreshId="repeat1">
</xp:eventHandler>
</xp:inputText>
<xp:text escape="true" id="comp">
<xp:this.value><![CDATA[#{javascript:var repeatValue = getComponent("repeat1").getValue();
var number1 = getComponent("number").getValue();
var number2 = getComponent("input").getValue();
return number1-number2;
}]]></xp:this.value>
</xp:text>
<xp:br></xp:br></xp:repeat>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:table style="width:100%">
<xp:tr>
<xp:td colspan="2" style="text-align:center">
<xp:button value="Add Document" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="Panel_All">
<xp:this.action><![CDATA[#{javascript:sessionScope.dynaField=parseInt(sessionScope.dynaField)+1
getComponent("repeat1").setValue(parseInt(sessionScope.dynaField));}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
</xp:td>
</xp:tr>
</xp:table>
</xp:panel>
我有第一个带有id号的inputText,其中是初始号码。然后重复有一个输入文本和一个计算字段,显示&#34;数字&#34;,第一个inputText和重复中的inputText之间的差异。 然后,如果用户单击按钮,则在repeat中显示一个新的inputText,并且与该字段相关的计算字段的结果应为:( number)-1d中的inputText - 字段中的第二个inputText。
谢谢,
林
答案 0 :(得分:0)
我不确定这是最好的方法。我从不像那样从重复控制本身中提取数据。我很快就会回到磁盘上并按照这种方式进行计算。
假设你想要在重复控制之外的这些总数我有一个SSJS或Java函数来获得总数并且只是以这种方式呈现它。实际上你真的可以在重复控制中做到这一点。您可以使用多米诺骨牌对象模型来收集您的文档...在那时进行您想要的任何计算并将结果存储在viewScope中,然后返回到重复控制所选文档的viewEntryCollection ......