XPages inputTextArea不可编辑

时间:2016-04-19 06:38:34

标签: xpages

当我使用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>

1 个答案:

答案 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>