Xpages runWithDocumentContext:将数据传递回xpage

Xpages runWithDocumentContext:将数据传递回xpage,xpages,Xpages,我几乎一整天都在玩弄文档上下文。也许有人能帮我找到一个可行的解决办法 如果在页面加载前/呈现响应前/查询打开文档事件中运行代理,则可以将值传递回xpage,而无需保存文档。我也试着保存文档,但没用 除了这两个事件之外,我没有找到调用代理并从LotusNotes代理返回值的方法。有人能想出一个可行的事件吗?在任何可以调用SSJS的地方调用代理都可以。一些 但是有一个非常重要的警告:当您尝试使用绑定到当前XPage中的数据源的文档(已保存或未保存)时,数据源中的值将覆盖后端文档中的更改。这可能是你的

我几乎一整天都在玩弄文档上下文。也许有人能帮我找到一个可行的解决办法

如果在页面加载前/呈现响应前/查询打开文档事件中运行代理,则可以将值传递回xpage,而无需保存文档。我也试着保存文档,但没用


除了这两个事件之外,我没有找到调用代理并从LotusNotes代理返回值的方法。有人能想出一个可行的事件吗?

在任何可以调用SSJS的地方调用代理都可以。一些

但是有一个非常重要的警告:当您尝试使用绑定到当前XPage中的数据源的文档(已保存或未保存)时,数据源中的值将覆盖后端文档中的更改。这可能是你的问题


正如David所建议的:使用SSJS和Java。这比您可能担心的工作量要少,您可以偿还一些技术债务,只需创建一个新的Domino文档,将要发送的字段放在上面,给您的代理打电话,然后取回这些字段。然后在XPage(getComponent(“name”).setValue(value)上填充您需要的任何内容


无需保存此临时文档,当代码运行时,它将消失。

您在第2段中所说的“可”是指“无法”吗?不可以。我可以将值传回。但是这些事件对我没有帮助,因为它们只在开始时触发。我需要在部分或完全刷新时使用它们。我强烈建议您不要尝试使用代理执行所有这些操作。如果可能,请在SSJS中编写所需的代码(如果可用,请使用Java)。该应用程序总体性能会更好。当然,你应该能够传递给代理-但在部分刷新和所有这些过程中这样做?听起来很吓人…抱歉,脚本库太大了。在部分刷新期间调用代理效果很好。我唯一的问题是将数据带回xpage.Even如果我保存文档,我必须重新加载整个xpage。关于某个事件的任何建议我都可以使用。只是想一想:如果你保存了后端文档。但我建议使用虚拟文档调用代理,并在调用datasource后重新应用其项。很抱歉,重写不是一个选项,因为脚本库非常庞大。我知道我可以调用代理Y但如果我更改代理中的字段,我在xpage中也有这些字段,它们似乎不会回来。只有在提到的事件中调用代理,我才能看到返回xpage的值。如果我在按钮中调用代理,如何将值返回xpage的任何建议都会回来,但会被数据bi覆盖nding。因此,您可以:创建一个新文档,无需保存。复制所有项目。运行您的代理并检查返回的内容。您会后悔没有尽早查看LotusScript到重构Java的转换。因此,问题是,您如何进行部分刷新并从后端文档获取值,而不发送返回的值通过数据绑定。好的,我发现了一些有用的东西。我可以在后端操作文档。保存它。然后对整个页面进行JS刷新。这将从后端文档中恢复值。虽然不好,但它可以工作