当我使用multiLine编辑框时(如第一篇所示)它无法编辑如果文档在editMode中。 但是SECOND ONE是可编辑的。我的观点是,如果在inputTextArea的值处使用公式,则无法进行编辑。 我找不到我想念的是什么?
第一个:
<xp:inputTextarea id="muvName" rows="2" cols="70"><xp:this.value><![CDATA[#{javascript:@Implode(document1.getItemValue("muvName"))+ @NewLine() + "C/o";}]]></xp:this.value></xp:inputTextarea>
第二个:
<xp:inputTextarea id="muvName" rows="2" cols="70" value="#{document1.muvName}">
</xp:inputTextarea>
答案 0 :(得分:3)
使用属性defaultValue
定义默认值:
<xp:inputTextarea
id="muvName"
rows="2"
cols="70"
value="#{document1.muvName}">
<xp:this.defaultValue><![CDATA[#{javascript:
@Implode(document1.muvName)+ @NewLine() + "C/o"
}]]></xp:this.defaultValue>
</xp:inputTextarea>
并使用属性value
将文档的项目(或范围变量)绑定到可编辑字段。 value
必须是XPage可以将提交的内容写入的对象。
在第一个示例中,您计算了一个字符串,并且无法将某些内容写回计算出的字符串。这就是该领域只读的原因。
更新
如果要在编辑前更正文档字段的值,请改为使用自定义转换器:
<xp:inputTextarea
id="muvName"
rows="10"
cols="70"
value="#{document1.muvName}">
<xp:this.converter>
<xp:customConverter
getAsObject="#{javascript:value}">
<xp:this.getAsString><![CDATA[#{javascript:
if (!value.endsWith("C/o")) {
value += @NewLine() + "C/o";
}
value
}]]></xp:this.getAsString>
</xp:customConverter>
</xp:this.converter>
</xp:inputTextarea>