Xpages 在服务器端处理时从扩展库显示对话框

Xpages 在服务器端处理时从扩展库显示对话框,xpages,xpages-extlib,Xpages,Xpages Extlib,我有一个XPage,其中在beforeRenderResponse事件中有代码,该事件将数据导出到Excel 我希望在导出开始之前显示从扩展库创建的“请稍候…”对话框。我尝试了getComponent(“dialogbox”).show(),但它似乎在导出开始之前忽略了该行 对于如何在XPage上以SSJS或CSJS显示对话框,您有什么建议吗?提前感谢您的帮助 编辑以添加XPages和客户控制代码 XPages代码: 自定义控制代码“WaitDialogBox”: 处理。。。。 请等待,直

我有一个XPage,其中在beforeRenderResponse事件中有代码,该事件将数据导出到Excel

我希望在导出开始之前显示从扩展库创建的“请稍候…”对话框。我尝试了
getComponent(“dialogbox”).show()
,但它似乎在导出开始之前忽略了该行

对于如何在XPage上以SSJS或CSJS显示对话框,您有什么建议吗?提前感谢您的帮助

编辑以添加XPages和客户控制代码

XPages代码:


自定义控制代码“WaitDialogBox”:


处理。。。。
请等待,直到您看到屏幕底部的“是否要打开或保存…”栏。

加载页面时是否只需要一条请稍候的消息?如果是这样的话,比这九个音符广播有更好的方式做到这一点。在这种情况下,您不希望使用对话框。

因此,如果您希望在导出运行时显示消息(无论Howard建议的消息、对话框或dojo待机模式是哪种类型),必须确保在不进行导出的情况下先加载页面,然后启动导出

在我的示例页面上,查看视图标记上的rendered属性。我在那里检查请求url上是否有参数
export
。这也是在
afterRenderResponse
事件开始时完成的

然后在
showDialog
脚本块中,我打开对话框并通过添加
?export=true
更改当前窗口的url。您可以用任何其他内容替换该对话框。使用此解决方案,当导出完成并准备下载时,无法执行某些操作(即关闭对话框)



看一下这里谢谢你,克努特,谢谢你的及时帮助!我用以下行添加了脚本块XSP.addOnLoad(function(){XSP.openDialog(“#{id:WaitDialog}”);});,但是对话框没有出现。我遗漏了什么吗?请将您的XPage代码添加到您的问题中-包括对话框,但没有Excel导出代码(=所有相关代码)。我将XPage和自定义控制代码添加到我的原始帖子中。我希望我添加的内容正确,因为我是这个网站的新手。:-)除了主题“Bootstrap4”之外,您的代码对我有效。我不得不删除
。可能是因为这个JavaScript文件而导致页面无法加载?是的,这就是我希望做的。霍华德,谢谢你的链接,我来看看。但是,当我从中单击备用链接时,该链接已断开。不管怎样,我都会看视频,然后试着从那里找出答案。很抱歉链接断了。显然,它有硬编码的服务器名称。我会尽力解决的。大卫-没关系!至少你现在知道了。:-)阿德里安-谢谢你的帮助!这对我很有效。唯一的问题是,我希望它能保持在同一个页面上,并且导出在幕后工作。问题是,您必须确保在导出开始之前先呈现页面。之后,使用AJAX下载文件并不容易,因为文件下载必须是整页加载。这可以通过解决方案中的上述方法或iframe来实现:require([“dojo/ready”,“dojo/query”,“dojo/io/iframe”]、function(ready,query,ioIframe){ready(function(){ioIframe.send({url:'{javascript:return context.getUrl().getPath()}?export=true',form query('form('form')[0].id})})});});谢谢,阿德里安。如果要使用iframe,是在iframe中打开整个页面还是仅打开对话框?整个页面应正常呈现。在iframe中,只需呈现excel导出。您需要iframe,因为下载必须单独完成。如果您认为我的答案有用且正确,如果您接受并将其标记为解决方案,我将不胜感激