【发布时间】:2012-10-30 16:50:41
【问题描述】:
全部,
我有一个 UpdatePanel,它发出了几个长时间运行的请求来收集大量数据。有时需要长达 90 秒才能返回。
第一个请求返回呈现为文档链接的数据。单击链接会打开一个新的浏览器窗口,并且 URL 有一个查询字符串,告诉系统要打开哪个文档。
这是为客户端呈现链接时的代码片段:
HtmlAnchor alink = new HtmlAnchor();
alink.HRef = "javascript:openDocument('"+ item.Url +"')"; //item.Url;
// here is the JS on the client page
function openDocument(path) {
window.open(path);
}
因此,当用户单击链接时,弹出窗口会打开。问题是它会等到 UpdatePanel 完成其请求后,才会在弹出窗口发送其请求。
我可以从弹出窗口中复制 url,打开一个新浏览器,然后将 URL 粘贴到新浏览器中,它会按预期打开文档。
这让我相信 UpdatePanel 以某种方式阻止了弹出窗口的请求。我不想让用户等到 UpdatePanel 的 AJAX 请求完成后,用户才能从第一个结果中打开文档。
如何解决此阻塞问题?我尝试在 UpdatePanel 的 ContentArea 之外创建按钮并模拟点击,但也没有类似的效果。
有人知道吗?
提前致谢!
【问题讨论】:
-
请求是如何产生的?通过回传?您是否尝试过将 javascript 代码直接实现到 aspx 文件?
标签: c# asp.net asp.net-ajax updatepanel