我有一个xpages,其中有一个repeat控件,并且我添加了一个按钮来增加重复次数。在repeat中,我有一个inputText和一个ComputedField。我想获取每个inputText的ID并对其执行一些操作,也许可以添加它们。我向repeat添加了一个索引,我的索引的标签是: inputText $( index )。我想通过getComponent (“输入”+索引)来访问,但是它显示:getComponent is null。为什么?
inputText id是什么?
附言:代码如下:
<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,其中是初始编号。然后,repeat有一个输入文本和一个计算字段,显示repeat中的“inputText”、first inputText和number之间的差异。然后,如果用户单击按钮,repeat和与该字段相关的计算字段中会显示一个新的数字,结果应该是:( inputText )-第1个inputText in the repeat -第2个inputText in该字段。
谢谢,
弗洛林
发布于 2014-09-11 11:30:59
我不确定这是不是最好的方法。我从来没有像那样从repeat控件本身中提取数据。我宁愿回到磁盘上,用这种方式计算它。
假设您希望在repeat控件之外获得这些合计,我将使用SSJS或Java函数来获取合计并以这种方式表示它。实际上,您可以在repeat控件本身中做到这一点。您可以使用domino对象模型来收集文档……此时执行任何您想要的计算,并将结果存储在viewScope中,然后将所选文档的viewEntryCollection返回给重复控件...
https://stackoverflow.com/questions/25785831
复制