在我的一个XPage应用程序中(对于客户端,XPiNC),我有一个指向"编辑"的链接。本文件的附件。我使用this blog article中描述的技术来编辑附件。
在那种情况下,我有三个窗口进行交互:
我设法让笔记文档(2)等待应用程序(3)完成并上传修改后的附件。
现在我需要XPage等待后端更改发生,然后从后端文档重新加载XSP Document以禁止保存冲突。
我认为最简单的方法是将附件提取到作为对当前文档的响应的附件文档,但这是一个相当古老的应用程序,在许多数据库中都有大量数据,并且不可行为此转换所有这些现有文档。
现在我寻找第二种最好的方法。
所以再一个问题:我如何制作XPage"等待"要进行后端更改,然后重新加载当前页面。
第二:我如何最好"可视化"对于用户来说,后端正在运行某些东西(Spinner,淡出等)。
服务器是9.0.1FP2,不幸的是客户端是8.5.3(目前无法更新)。
以下是我在我的" Open"中使用的代码。链接:
<xp:link escape="true" text="Edit" id="attachmentEdit">
<xp:eventHandler event="onclick"
submit="true" refreshMode="partial" refreshId="tableAttachment">
<xp:this.action><![CDATA[#{javascript:var strAttachmentName:String = docs.toString();
var strReplid = database.getReplicaID();
var strUnid = document1.getDocument().getUniversalID();
var strServer = @Name( "[CN]" , database.getServer() );
var strUrl:String = "notes://" + strServer + "/"+strReplid+"/(ShowAttachment)?OpenForm";
session.setEnvironmentVar("InfothekCurrentAction","EDIT~" + strUnid + "~" + strAttachmentName);
view.postScript('window.location.href="'+strUrl+'"');}]]>
</xp:this.action>
</xp:eventHandler>
</xp:link>
答案 0 :(得分:0)
我正在使用xagent。多数民众赞成在做什么:
1)我将div的背景设置为移动的css渐变。
2)将div的src设置为在后端执行某些操作的xagent
3)xagent在加载后会调用一些csjs(在你的情况下,你可以调用一个按钮来刷新页面)
答案 1 :(得分:0)
看看这个概念验证演示:http://dontpanic82.blogspot.sk/2010/01/xpages-custom-control-that-can-help.html
简单的CSJS chcecks用于文档的更新属性。如果它被修改(附件已保存),您可以显示弹出窗口或只是重新加载XPage。