根据后端文档是否更新,部分刷新改变面板
Partial refresh change panel depending on whether backend document has been updated
我有一个预订表格,需要在有人点击预订按钮时检查预订是否仍然可用。如果它可用,我希望处理按钮后面的 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
}
似乎 return 要更新的面板的代码没有执行 if then 的 'else' 部分 - 我是否使用不正确?
您将第一个代码片段放入按钮事件处理程序的 refreshId
属性 中。此代码在呈现的页面发送到浏览器之前 执行。这对您的情况来说还为时过早,因为此时预订始终免费。
最简单的方法是进行全面更新。
如果这不可行,则使用 XSP.partialRefreshPost(id, ...)
和 XSP.partialRefreshGet(id, ...)
尝试预订,如果成功则刷新 mainPanel,否则刷新 dialogPanel。
我有一个预订表格,需要在有人点击预订按钮时检查预订是否仍然可用。如果它可用,我希望处理按钮后面的 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
}
似乎 return 要更新的面板的代码没有执行 if then 的 'else' 部分 - 我是否使用不正确?
您将第一个代码片段放入按钮事件处理程序的 refreshId
属性 中。此代码在呈现的页面发送到浏览器之前 执行。这对您的情况来说还为时过早,因为此时预订始终免费。
最简单的方法是进行全面更新。
如果这不可行,则使用 XSP.partialRefreshPost(id, ...)
和 XSP.partialRefreshGet(id, ...)
尝试预订,如果成功则刷新 mainPanel,否则刷新 dialogPanel。