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

Xpages 部分刷新更改面板,具体取决于后端文档是否已更新,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我有一张预订表,当有人单击“预订”按钮时,需要检查预订是否仍然可用。如果可用,我希望按钮后面的SSJS代码进行处理(然后更新预订表单上的一些值),但是如果在检查预订时不再可用,我希望对其他面板(主面板中的面板)进行部分刷新,因此,建议用户它不可用,他们可以去找另一个合适的约会(这是通过提供不同的面板来完成的) 为了做到这一点,我对元素进行了编程,以便在表单上按钮的部分更新中进行更新 var tbooked = document1.getItemValueString("booked"); if

我有一张预订表,当有人单击“预订”按钮时,需要检查预订是否仍然可用。如果可用,我希望按钮后面的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-then的“else”部分-我是否使用了错误的方法?

您将第一个代码片段放入按钮事件处理程序的
refreshId
属性中。此代码在呈现的页面发送到浏览器之前执行。这对于您的情况来说太早了,因为此时预订总是免费的

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

如果不可行,则使用
XSP.partialRefreshPost(id,…)
XSP.partialRefreshGet(id,…)
尝试预订,如果成功,则刷新主面板和对话框面板