0

为什么提交xpage时没有返回计算域的当前值?

var newHTTPPassword = this.userProfileXspDoc.getValue("HTTPPassword");

其中 HTTPpassword 是带有公式的计算字段

@Password(HTTPPassword_1).

xpages 是在两者上计算的。

4

1 回答 1

1

计算字段仅在 Notes 表单中。当您提交 XPage 时,提交的值在提交事件中可用,但不能使用 Notes 表单的“computeWithForm”对其进行修改。除非您正在使用大量 @Logic 的形式来改装现有应用程序,否则我会尽量避免使用形式进行计算。使用 session.evaluate 进行转换(这也使您无需拥有 2 个字段)。根据建议 .getSubmittedValue() 可能会起作用。但是,我宁愿将输入字段 HTTPassword_1 绑定到 viewScope.password,在 querySave 中执行以下操作:

if (viewScope.password) { // If it isn't empty
    var realPassword = session.evaluate("@Password(\""+viewScope.password+"\")");
    userProfileXspDoc.setValue("HTTPPassword",realPassword);
    // Clear the scope for next round?
    viewScope.password = null;
}

这消除了您从文档中清除 HTTPassword_1 的需要。

让我们知道怎么回事

于 2013-09-28T04:42:31.990 回答