xpages 中的等待图标/消息
Waiting icon / message in xpages
我想在代码为 运行 时使用一些等待对话框/图标/图像。代码完成后想要停止该图标。我浏览了网络上提供的 material,但未能获得或理解。
我正在使用在后端调用代理的 SSJS 脚本。处理需要 20-30 秒。
我已经通过了,不知道使用情况?
https://openntf.org/XSnippets.nsf/snippet.xsp?id=bootstrap-standby-dialog
http://xpagesera.blogspot.com/2012/05/add-ajax-loading-control-in-xpages-for.html
我已经尝试了以下方法 它在 IBM Notes 9.0.1 的浏览器上工作正常,但在 XPiNC 中不工作。在我使用 One UI V 2.1 的地方,它在 XPiNC 或 Web 客户端中不起作用。
<xp:this.resources>
<xp:dojoModule name="extlib.dijit.ExtLib"></xp:dojoModule>
<xp:dojoModule name="extlib.dijit.Loading"></xp:dojoModule>
</xp:this.resources>
在事件处理程序中,我在页面上使用了以下事件并进行了部分刷新。
<xp:this.onStart><![CDATA[XSP.startAjaxLoading()]]></xp:this.onStart>
<xp:this.onComplete><![CDATA[XSP.endAjaxLoading()]]></xp:this.onComplete>
<xp:this.onError><![CDATA[XSP.endAjaxLoading()]]></xp:this.onError>
如何在两个客户端和一个客户端上使用此代码实现此功能 UI 2.1.
非常感谢您对我最初的问题的答复,我也期待您的答复。
此致,
凯撒·阿巴斯
使用第一个选项(这可能需要 bootstrap,因此是扩展库的 OpenNTF 版本),这是一个独立的自定义控件,可以自动劫持任何部分刷新并添加加载掩码。如果按照link上一个版本,给出了实现说明:
"Add this to a custom control and add that to your xpages to get a standby dialog on every partial refresh"
后两个 link 是更多手动选项。 onStart
、onError
和 onComplete
是 EventHandler 的属性。您不能从包含事件处理程序的组件(例如按钮、编辑框等)访问它们。您需要转到源代码窗格,单击 EventHandler 本身,然后会弹出 EventHandler 而非 Component[= 的属性的所有属性框21=] 包含事件处理程序。
这是您的第二个 XPage 示例 link Add AJAX “Loading..” control in XPages for Partial Updates:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" style="margin:200px">
<xp:this.resources>
<xp:dojoModule name="extlib.dijit.Loading" />
</xp:this.resources>
<xp:button id="button1" value="Show time in 3 seconds">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial"
refreshId="panel1">
<xp:this.action><![CDATA[#{javascript:
viewScope.clickTime = new Date();
var waitUntil = viewScope.clickTime.getTime() + 3000;
while(waitUntil > new Date().getTime()) {
// wait 3 seconds
}
}]]></xp:this.action>
<xp:this.onStart><![CDATA[XSP.startAjaxLoading()]]></xp:this.onStart>
<xp:this.onComplete><![CDATA[XSP.endAjaxLoading()]]></xp:this.onComplete>
<xp:this.onError><![CDATA[XSP.endAjaxLoading()]]></xp:this.onError>
</xp:eventHandler>
</xp:button>
<xp:panel id="panel1">
<xp:text
escape="true"
id="computedField1"
value="#{viewScope.clickTime}"
style="font-size:48pt">
<xp:this.converter>
<xp:convertDateTime type="both" />
</xp:this.converter>
</xp:text>
</xp:panel>
</xp:view>
当您点击按钮时,它会显示 "Please wait..." 三秒钟,然后是按钮点击的时间。
确保在按钮的事件处理程序中设置 refreshMode="partial"
和有效的 refreshId。
我想在代码为 运行 时使用一些等待对话框/图标/图像。代码完成后想要停止该图标。我浏览了网络上提供的 material,但未能获得或理解。
我正在使用在后端调用代理的 SSJS 脚本。处理需要 20-30 秒。
我已经通过了,不知道使用情况?
https://openntf.org/XSnippets.nsf/snippet.xsp?id=bootstrap-standby-dialog
http://xpagesera.blogspot.com/2012/05/add-ajax-loading-control-in-xpages-for.html
我已经尝试了以下方法 它在 IBM Notes 9.0.1 的浏览器上工作正常,但在 XPiNC 中不工作。在我使用 One UI V 2.1 的地方,它在 XPiNC 或 Web 客户端中不起作用。
<xp:this.resources>
<xp:dojoModule name="extlib.dijit.ExtLib"></xp:dojoModule>
<xp:dojoModule name="extlib.dijit.Loading"></xp:dojoModule>
</xp:this.resources>
在事件处理程序中,我在页面上使用了以下事件并进行了部分刷新。
<xp:this.onStart><![CDATA[XSP.startAjaxLoading()]]></xp:this.onStart>
<xp:this.onComplete><![CDATA[XSP.endAjaxLoading()]]></xp:this.onComplete>
<xp:this.onError><![CDATA[XSP.endAjaxLoading()]]></xp:this.onError>
如何在两个客户端和一个客户端上使用此代码实现此功能 UI 2.1.
非常感谢您对我最初的问题的答复,我也期待您的答复。
此致, 凯撒·阿巴斯
使用第一个选项(这可能需要 bootstrap,因此是扩展库的 OpenNTF 版本),这是一个独立的自定义控件,可以自动劫持任何部分刷新并添加加载掩码。如果按照link上一个版本,给出了实现说明:
"Add this to a custom control and add that to your xpages to get a standby dialog on every partial refresh"
后两个 link 是更多手动选项。 onStart
、onError
和 onComplete
是 EventHandler 的属性。您不能从包含事件处理程序的组件(例如按钮、编辑框等)访问它们。您需要转到源代码窗格,单击 EventHandler 本身,然后会弹出 EventHandler 而非 Component[= 的属性的所有属性框21=] 包含事件处理程序。
这是您的第二个 XPage 示例 link Add AJAX “Loading..” control in XPages for Partial Updates:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" style="margin:200px">
<xp:this.resources>
<xp:dojoModule name="extlib.dijit.Loading" />
</xp:this.resources>
<xp:button id="button1" value="Show time in 3 seconds">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial"
refreshId="panel1">
<xp:this.action><![CDATA[#{javascript:
viewScope.clickTime = new Date();
var waitUntil = viewScope.clickTime.getTime() + 3000;
while(waitUntil > new Date().getTime()) {
// wait 3 seconds
}
}]]></xp:this.action>
<xp:this.onStart><![CDATA[XSP.startAjaxLoading()]]></xp:this.onStart>
<xp:this.onComplete><![CDATA[XSP.endAjaxLoading()]]></xp:this.onComplete>
<xp:this.onError><![CDATA[XSP.endAjaxLoading()]]></xp:this.onError>
</xp:eventHandler>
</xp:button>
<xp:panel id="panel1">
<xp:text
escape="true"
id="computedField1"
value="#{viewScope.clickTime}"
style="font-size:48pt">
<xp:this.converter>
<xp:convertDateTime type="both" />
</xp:this.converter>
</xp:text>
</xp:panel>
</xp:view>
当您点击按钮时,它会显示 "Please wait..." 三秒钟,然后是按钮点击的时间。
确保在按钮的事件处理程序中设置 refreshMode="partial"
和有效的 refreshId。