我创建了一个简单的重复控制,它里面2角简单的具有inputText
秒。 超过这个重复控制,有一个可编辑inputText3
(绑定到数据源)。 我用它来作重复控制里面的一些计算。 计算是正确显示。 我有2个按钮,为新行和删除/ hideLine。 目前,重复控制里面的2场未绑定到数据源。
我有一个按钮,保存该文档,并列出其一个viewPanel中的内部,具有第一列inputText3
,点击。 我注意到,如果我打开文件(编辑或读模式)正确地显示该编辑的字段值,但重复控件中的字段都为空,即使我使用保存方法之前添加一些值。
我也尝试创建窗体(/数据源)内2场,这inputTexts绑定到他们,但再次重复控制字段为空。
<xp:repeat id="repeat1" var="varRepeat" indexVar="index">
<xp:this.value><![CDATA[#{javascript:parseInt(sessionScope.dField)
}]]></xp:this.value>
...
<xp:inputText id="inputText1"></xp:inputText>
<xp:inputText id="inputText2"></xp:inputText>
重复外的可编辑字段:
<xp:inputText id="number" value="#{docrepeat.valtotala}"
defaultValue="100">
</xp:inputText>
。
<xp:this.data>
<xp:dominoDocument var="docrepeat" formName="docrepeat"></xp:dominoDocument>
</xp:this.data>
我确实失去了一些东西在这里,希望能达到一个实用的解决方案。
我应该绑定使用重复的VAR财产2 inputText的?
或者我如何才能做到这一点?
重复控制代码:
<xp:repeat id="repeat1" var="test" indexVar="index" rows="8">
<xp:this.value><![CDATA[#{javascript:parseInt(sessionScope.DField)
}]]></xp:this.value>
<xp:panel>
<xp:table >
<xp:tr>
<xp:td>
<xp:inputText id="inputText1">
<xp:eventHandler event="onchange"
submit="false">
<xp:this.script><![CDATA[try
{
var idx="view:_id1:inputText3";
var index=document.getElementById(idx).value;
var number="view:_id1:number";
var val=document.getElementById(number).value;
var sum = val;
for(var i=0;i<index;i++) {
var input1="view:_id1:repeat1:"+i+":inputText1"
var nr1=document.getElementById(input1).value;
sum-=nr1;
document.getElementById("view:_id1:repeat1:"+i+":inputText2").value = sum;
}
// calculating some %
document.getElementById("view:_id1:test").value = parseInt((sum*100)/val);
}
catch(e)
{
alert("not working");
}]]></xp:this.script>
</xp:eventHandler>
</xp:inputText>
<xp:inputText id="inputText2"></xp:inputText>
</xp:td>
</xp:tr>
</xp:table>
</xp:panel>
</xp:repeat>
我的小场景是在这里描述: 中使用XPages如何获取/创建这个计算模块