温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ASP.NET中如何使用 UpdatePanel控件

发布时间:2021-07-15 15:26:01 来源:亿速云 阅读:200 作者:Leah 栏目:编程语言

ASP.NET中如何使用 UpdatePanel控件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

UpdatePanel 可以为一般的网页带来 AJAX 神奇的好处,但是它不能提供我们与 AJAX 正常关联的高效性。例如,您是否知道,当 UpdatePanel控件对服务器执行异步 AJAX 回调以更新其内容时,这个请求包含了常规 ASP.NET 回发所包含的一切,其中还包括视图状态呢?大多数开发人员会以为 AJAX 取消了视图状态。而 UpdatePanel 的 AJAX 品牌却并非如此。

如果您准备使用 UpdatePanel控件,您需要清楚您在准备干什么。在许多情况下,从性能的角度而言,应用程序***是不使用 UpdatePanel,而是使用对 WebMethods 或页面方法的异步调用。这样做可能会大幅度降低网络传输中的数据量。但是,它也是一个根本转变,在这里 UI 更新需要由开发人员使用该页面上的 JavaScript 来进行显式处理。

此外,ASP.NET AJAX 论坛上到处都有关于自定义 UpdatePanel 的提问。其实,只要您了解为 UpdatePanel 提供客户端支持的 Microsoft? AJAX Library 中的 PageRequestManager、JavaScript 类,这里面许多问题就可以迎刃而解。

既然已经提供了 ASP.NET AJAX,我想进一步检查一下 UpdatePanel,从而进一步了解您可以如何对其进行自定义和优化,甚至在没有它的情况下如何运行。这恰恰也是本期专栏包含的全部内容。

更新突出显示

有时候您无法帮助 Microsoft 的开发人员,而只能对他们表示遗憾。如果他们不能将工作做得足够好,就会遭到公众的抨击。然而,有时候他们的工作做得很出色,也会遭到抨击。例如,我最近收到了一位客户的电子邮件,抱怨 ASP.NET AJAX UpdatePanel 运行得有点过头了。

UpdatePanel 使 ASP.NET 页面回发到服务器,并将它变为流畅、无闪烁的更新时出现闪光和闪烁变得极其简单。UpdatePanel 可以通过将回发转换成异步回调(XML-HTTP 请求),以及使用客户端上的 JavaScript 以刷新由 UpdatePanel控件封装的页面的一部分来发挥它的魔力。闪光和闪烁会消失,因为浏览器不会将该页面重新绘制成与它在回发期间的一样。

客户的抱怨是,用户有时候不会注意到页面的那个部分已经更新了新内容。他的问题很简单:ASP.NET AJAX 团队的工作人员是否能使

updatePanel 闪烁再多一点,以便用户不会错过重要的更新?

不幸的是,ASP.NET AJAX 团队可能对制造 UpdatePanel 闪烁没什么兴趣。毕竟,消除闪烁才是发明 UpdatePanel 的初衷。但值得高兴的是,您可以在浏览器中使用 AJAX 的一些神奇功能,以吸引对已更新的 UpdatePanel 的注意。秘诀在于 Microsoft AJAX Library(由客户端一半的 ASP.NET AJAX 组成的 JavaScript 类的库)中的 Sys.WebForms.PageRequestManager 类。PageRequestManager 可以管理由 UpdatePanel 启动的异步回调。它还负责在异步回调完成后更新 UpdatePanel 内的内容。

PageRequestManager 可以在更新前和更新后激发浏览器中的事件。您可以将 JavaScript 中的这些事件关联起来,并运行可以提醒用户注意更新内容的代码。关键事件被命名为 pageLoaded.此事件每次都会激发浏览器中的页面加载(它类似 Page_Load in ASP.NET)。它每次还会激发代表 UpdatePanel控件完成而启动的异步回调,并且会更新这个 UpdatePanel 中的内容。您可以使用两行代码(可以合并为一行)注册 pageLoaded 事件的 JavaScript 处理程序:

var prm = Sys.WebForms.PageRequestManager.getInstance();prm.add_pageLoaded(pageLoaded);

***行获得对该页面的 PageRequestManager 对象的引用。第二行注册名为 pageLoaded 的 JavaScript 函数,作为 pageLoaded 事件的处理程序。

调用时,pageLoaded 事件处理程序会收到一个 Sys.WebForms.PageLoadedEventArgs 类型的参数,它是 Microsoft AJAX Library 中的另一个类。PageLoadedEventArgs 包含一个 get_panelsUpdated 方法,您可以调用该方法来枚举所有的 UpdatePanel(如果有),其内容刚刚已更新。在默认情况下,UpdatePanel 就是客户端上的 DIV,因此您可以使用 JavaScript 来使该 DIV 闪光,突出显示它,或对它执行任何您想要的操作,以提醒用户注意它。

关于ASP.NET中如何使用 UpdatePanel控件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI