部分刷新更改面板取决于后端文档是否已更新

时间:2015-06-23 00:50:54

标签: xpages xpages-ssjs

我有一张预订表格,当有人点击图书按钮时,需要检查预订是否仍然可用。如果它可用,我希望按钮后面的SSJS代码可以处理(然后更新预订表格上的一些值),但是如果在检查预订时它已经不再可用,我想部分刷新一个不同的面板(主面板内的一个面板),因此建议用户说它不可用,他们可以找到另一个合适的预约(这可以通过提供不同的面板来完成)。

为了做到这一点,我已经在表单上按钮的部分更新中编写了要更新的元素。

var tbooked = document1.getItemValueString("booked");

if (tbooked =="Free") {
    return 'mainPanel'}
else {
    return 'dialogPanel'}

我已经添加了以下代码,以便在选择按钮时执行。

var tbooked = document1.getItemValueString("booked");

if (tbooked =="Free") {
    Set a bunch of viewScope variables.
    Also save the document
}

似乎返回要更新的面板的代码没有执行if的'else'部分 - 我是不是错误地使用了它?

1 个答案:

答案 0 :(得分:1)

您将第一个代码段放入按钮事件处理程序的XSP.partialRefreshPost(id, ...)属性中。此代码在之前执行,呈现的页面将发送到浏览器。这对您的情况来说为时尚早,因为此时预订始终是免费的。

最简单的方法是进行全面更新。

如果这不可行,则使用XSP.partialRefreshGet(id, ...)http://localhost:8080/alfresco/service/index 尝试预订,如果成功刷新mainPanel,则使用dialogPanel。