【发布时间】:2018-07-09 18:55:06
【问题描述】:
我有一个使用 dojo 的对话框,它位于 xpages 视图操作的顶部,用于从视图的第一列中显示用户值,然后执行 excel 导出过程。我还添加了 XSP.addClientLoad 功能以获取用户选择的值。
在对话框的确定按钮上,我在客户端 javascript 上有以下代码。
var d=dijit.byId('#{javascript:compositeData.dialogID}');
var SelectedValues = document.getElementById("#{id:SelectedValues}");
SelectedValues.value =d.getSelectedValues();
alert(d.getSelectedValues());
context.redirectToPage("excelExporter2.xsp",false)
将现有对话框选择的值保存到自定义控件隐藏可编辑字段中的会话范围变量。
这是设置范围变量的正确方法吗?我还想遍历基于分类视图的会话范围变量并将它们导出到 xpages 上,所以在此之后我想触发 SSJS 来处理 excel 导入部分。
所以我的最终目标是基于用户选择对话框,我想运行 excel 来导出功能(即 ssjs )所以请帮助我如何从这里开始跳入 SSJS 以及我的设置方法会话范围变量是否合适?
【问题讨论】:
-
context.redirectToPage()是服务器端 JavaScript。它不能在浏览器上运行,所以会抛出错误。并且作用域变量不能由客户端 JavaScript 直接更新,因为变量存储在服务器上。您需要触发服务器端代码来更新 sessionScope,然后从服务器端重定向到您的 Excel 导出页面。回到理解什么在哪里运行的基础知识,理解部分刷新,特别是扩展库对话框,否则您的 XPages 应用程序将遇到更大的问题。 -
是的,我的问题是如何从客户端 javascript 代码触发服务器端 javascript,这将执行 sessionScope 变量存储和导出到 excel。如果您可以分享任何参考,那就太好了。
标签: xpages xpages-ssjs