代码之家  ›  专栏  ›  技术社区  ›  Cumhur Ata

XPages inputTextArea不可编辑

  •  1
  • Cumhur Ata  · 技术社区  · 10 年前

    当我使用multiLine编辑框(显示在FIRST ONE中)时,如果文档处于editMode,则无法编辑。 但第二个是可编辑的。我的观点是,如果在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 回复  |  直到 10 年前
        1
  •  3
  •   Knut Herrmann    10 年前

    使用属性 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 用于将文档的项(或范围变量)绑定到可编辑字段。 价值 必须是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>