如何刷新XPage文件下载控件并让它显示更新的附件而无需完整页面刷新?

时间:2013-09-06 19:02:37

标签: xpages

当我在文档上创建文件下载控件时,我可以在富文本字段中显示附件。

在一个单独的过程中,我将更多文档附加到同一文档中。我想定期刷新下载控件容器,看看是否有新的附件。我不想对页面进行全面刷新。

我发现文件下载控件容器的partialRefresh无论是以编程方式还是手动方式都不会导致内容(可下载文件)被准确更新。

XSP.partialRefreshGet('view:_id1:fileDownload1')

完全刷新屏幕会显示新附加的文档,但我希望能够部分刷新面板容器,并在没有完整页面刷新的情况下查看新文档。

我在面板中添加了一个Random()计算文本值,我可以看到它正在刷新。我甚至看过服务器的xhr响应,我可以看到有更新 - 但没有新的附件 - 如果没有整页刷新,“附加文件”就不会刷新。

我只能假设这是filedownload控件的一个功能,因为它不知道除了页面加载之外的任何其他时间都附加了新文件。

建议?

2 个答案:

答案 0 :(得分:2)

部分刷新XPage时,不会重新加载数据源,只会恢复其最后一个状态(存储在内存或硬盘中)。如果将数据源的范围更改为 request ,则XPages引擎将被强制重新创建数据源,而不是在每个请求上使用缓存的数据源(包括部分刷新)。

这样可以让您在没有完全刷新的情况下刷新fileDownload控件。

答案 1 :(得分:1)

Marky,

是的,我之前遇到过这种情况。您必须使用附件进行完全刷新。

http://xpagesblog.com/XPagesHome.nsf/Entry.xsp?documentId=FBAC0D921B677EA0852578CB006678D7

链接相当陈旧,但我相信它仍然适用。

Matt White在文章评论中说:“......基本上目前无法通过AJAX发布文件附件,如果您不希望整个页面使用,则必须使用Flash或虚拟iFrame解决方案刷新。据我所知,目前IBM无法做到这一点。 马特“