首页 > 解决方案 > 在服务器端处理时从扩展库显示对话框

问题描述

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

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

您对如何在 SSJS 或 CSJS 中的 XPage 上显示对话框有任何建议吗?提前感谢你的帮助。

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

XPages 代码:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" rendered="false"
    xmlns:xc="http://www.ibm.com/xsp/custom"
    xmlns:xp_1="http://www.ibm.com/xsp/coreex">
    <xp:this.resources>
        <xp:script src="/Web Report Functions.jss"     clientSide="false"></xp:script>
    </xp:this.resources>
    <xp:this.afterRenderResponse><![CDATA[#{javascript:/*...(export to excel code)...*/}]]></xp:this.afterRenderResponse>
    <xc:WaitDialogBox></xc:WaitDialogBox>
    <xp:scriptBlock id="showDialog">
        <xp:this.value><![CDATA[XSP.addOnLoad(function(){XSP.openDialog("#{id:WaitDialog}");});]]></xp:this.value>
    </xp:scriptBlock>
</xp:view>

自定义控制代码“WaitDialogBox”:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">
    <xe:dialog id="WaitDialog" title="Please wait...">
    <xp:table>
    <xp:tr>
    <xp:td>
    Processing....
    <xp:br></xp:br>
    <xp:br></xp:br>
    Please wait until you see the &quot;Do you want to open or save...&quot; bar on the bottom of your screen.
    <xp:br></xp:br>
    </xp:td>
    </xp:tr>
    <xp:tr>
    <xp:td style="padding-top:10px;margin-top:10px;text-align:center;">
    <xp:image url="/ajax-loader.gif" id="processImage"></xp:image>
    </xp:td>
    </xp:tr>
    </xp:table></xe:dialog>
</xp:view>

标签: xpagesxpages-extlib

解决方案


在页面加载时,您只需要一条请稍候消息吗?如果是这样,那么这比《九中记》广播有更好的方法。在这种情况下,您不想使用对话框。 http://www.notesin9.com/2014/04/07/notesin9-142-adding-a-please-wait-to-xpages/


推荐阅读