我用这个问题的例子作为起点从重复控制中获取值
上面链接示例中的字段为:<xp:inputText id="inputText1" loaded="true">
<xp:this.value><![CDATA[${javascript:var fieldName = "Help_" + varcollection;
return '#{viewScope.' + fieldName + '}';}]]></xp:this.value>
<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="computedField1"></xp:eventHandler></xp:inputText>
我现在拥有的字段代码是上面的修改版本:
<xp:inputText id="inputText1" loaded="true">
<xp:this.value><![CDATA[#{javascript:var fieldName = "Tmp_" + @ReplaceSubstring(varcollection," ","");
return '#{viewScope.' + @ReplaceSubstring(fieldName," ","") + '}';}]]></xp:this.value>
<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="panel1" /></xp:inputText>
但由于某种原因,它不是一个可编辑的字段,知道为什么吗?
此外,尽管上面的想法很好,但如果我在一行中有4个可编辑字段,我就必须每行创建4个viewScope变量?是否有其他存储字段值的方法?
在Domino 8.5.3 上运行
将#{javascript:替换为${javascript。或者将值中的"代码"更改为onLoad(这与#和$之间的更改相同),这将使字段再次可编辑。
与其每行使用4个或更多的范围变量,而且您不知道最终需要多少,不如使用implements com.ibm.xsp.model.DataObject
的Bean。请参阅链接。实现DataObject接口的好处是,您可以直接通过EL.