我知道如何将计算字段绑定到文档字段。而且我知道如何使用 javascript 来计算计算域。但我该怎么做呢?
假设我在计算字段中的 javascript 是:
@Name("[ABBREVIATE]" ,@UserName());
如何将其绑定到 document1.ReqName 字段?
我知道如何将计算字段绑定到文档字段。而且我知道如何使用 javascript 来计算计算域。但我该怎么做呢?
假设我在计算字段中的 javascript 是:
@Name("[ABBREVIATE]" ,@UserName());
如何将其绑定到 document1.ReqName 字段?
我使用两个字段:
也许我错过了重点,但您为什么不简单地执行以下操作?
<xp:inputText id="inputText1" value="#{document1.Reader}">
<xp:this.defaultValue>
<![CDATA[#{javascript:@Name("[ABBREVIATE]",@UserName());}]]>
</xp:this.defaultValue>
</xp:inputText>
这是每个 EL 绑定到 DocumentField 的 Textfield。如果该字段为空,则按默认值计算。
伟大的!- 我错过了重点。但是你可以试试这个:
<xp:text escape="true" id="computedField3">
<xp:this.value>
<![CDATA[#{javascript:
if(@IsNewDoc()){
document1.replaceItemValue("Reader",@Name("[ABBREVIATE]",@UserName()));
}
return document1.getItemValue("Reader");}]]>
</xp:this.value>
</xp:text>
<xp:text escape="true" id="computedFieldTest1">
[CDATA[#{javascript:
var userName = "Username: "+("Reader",@Name("[ABBREVIATE]",@UserName()));
currentDocument.replaceItemValue("computedFieldTest1",userName);
return userName;
}]]></xp:this.value>
</xp:text>
在这种情况下我不会绑定。我将绑定所有其他控件,在这种情况下,在保存操作之前直接使用脚本将其手动添加到文档字段中。
就像这样:(请原谅不在我工作中的代码)
<eventhandler>
<actionGroup>
<script><![CDATA[#{javascript:
doc.replaceItemValue("ReqName", @Name("[ABBREVIATE]" ,@UserName()));
}]]><script>
<saveDocument></saveDocument>
</actionGroup>
</eventhandler>
对于计算域的值,使用高级数据绑定并选择表达式语言 (EL)。要使用的表达式只是“document1.ReqName”(没有引号)。