1

在一个 asp.net Web 应用程序中,我有一个使用 Telerik Rad 窗口构建的模式弹出窗口。在该弹出窗口中,有一个按钮必须在其“代码隐藏”中执行一些操作,然后将应用程序重定向到另一个页面。

对于重定向,我使用 javascript 命令“top.document.location.href = myPage”(使用 ScriptManager.RegisterClientScriptBlock(...) 从代码隐藏发送到浏览器)。

这解决了我的问题,但它不是很好。当按下按钮时,这会触发回发。在浏览器中,弹出窗口被 RadLoadingPanel 覆盖,该面板在回发完成时消失。然后在几秒钟内,应用程序中没有任何反应,只是在浏览器加载新页面一段时间后。

由于用户无法知道应用程序在做什么,因此在几秒钟内什么都没有发生的事实并不好。

我能做些什么 ?有没有更好的方法来进行重定向?(我对javascript编程很陌生......)。

4

1 回答 1

2

除了调用'top.document.location.href = myPage',您还可以调用一个显示覆盖的函数(例如,在父页面主体上显示一个RadAjaxLoadingPanel),然后设置新的URL。有关如何使用 JavaScript 显示加载面板的信息,请参阅http://www.telerik.com/help/aspnet-ajax/ajxshowhideloadingpanel.html 。

我认为您设置 location.href 后的延迟是正常的 - 浏览器/服务器需要一些时间来检索新页面 HTML,因此旧页面无法立即消失。

于 2010-03-23T16:19:03.323 回答