我有一个重复控件,其中有一个已传递默认值的编辑框。有一个删除按钮可以删除该行。
只是为了测试,我使用了一个计算字段和编辑框。计算字段也传递了与编辑框相同的值。现在计算字段和编辑框都有相同的值,当我随机单击删除按钮时,它会被删除,但是仅计算字段在重复控制中正确更新,无论何时删除,
在编辑框的情况下,它显示最后一条记录消失。所以问题是,编辑框中的值不会像计算字段那样得到更新。我已经通过编写以下代码完成了测试。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.data>
<xp:dominoDocument var="document1" formName="testing">
</xp:dominoDocument>
</xp:this.data>
<xp:inputText id="inputText1" multipleSeparator=",">
<xp:this.defaultValue><![CDATA[#{javascript:var v:java.util.Vector = new java.util.Vector();
v.add('1');v.add('2');v.add('3');v.add('4');v.add('5');v.add('6');
return v;}]]></xp:this.defaultValue>
</xp:inputText>
<xp:br></xp:br>
<xp:repeat id="repeat1" rows="30" var="r" indexVar="i" first="0">
<xp:this.value><![CDATA[#{javascript:return getComponent("inputText1").getValue();}]]></xp:this.value>
<xp:br></xp:br>
<xp:div style="text-align:center">
<xp:label value="#{javascript:r}" id="label1"
style="text-align:center">
</xp:label>
<xp:button value="Delete" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:var v:java.util.Vector = getComponent("inputText1").getValue();
if(v != null){
var sdtString = getComponent("inputText2").getValue();
if(v.contains(sdtString))
v.remove(sdtString);
};}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:inputText id="inputText2">
<xp:this.defaultValue><![CDATA[#{javascript:getComponent("label1").getValue();}]]></xp:this.defaultValue>
</xp:inputText>
</xp:div>
<xp:br></xp:br>
</xp:repeat>
</xp:view>
这是用于测试以获取确切问题的示例代码。
编辑 1:真实场景
我们有一个应用程序可以为会议选择多个日期,因此使用笔记空闲时间我们标记多个日期,然后允许用户在另一个窗口中编辑/删除相同的日期..因为,保存所有日期是不可能/不可行的对于 SSJS 中的字段,我们宁愿通过使用自定义控件的自定义属性将每个字段与重复控件下的数据源绑定(希望我有一些意义)。每个字段都映射为@chintan 指出的如下:
dataSource[compositeData.to]
如问题的第一部分所述,由于我们使用默认值设置它们,因此这些字段没有得到更新。然而,根据我们尝试使用运行良好的脚本库设置字段的建议,这可能看起来很愚蠢,但它会弄乱日期字段。当我们使用以下设置值时:
var d:java.util.Date = new java.util.Date(compositeData.selectedDate);
getComponent("from").setValue(d);
它混淆了月份、日期和年份字段,并显示了一个完全不同的值(相同的代码在作为默认值时效果很好)。
希望这是有道理的。
可以欣赏任何类型的解决方案。