博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Atlas UpdatePanel简要介绍
阅读量:6315 次
发布时间:2019-06-22

本文共 2010 字,大约阅读时间需要 6 分钟。

英文版见:

UpdatePanel是ASP.NET Atlas中很重要的一个控件。它把传统的ASP.NET程序与最新的Web 2.0 AJAX无缝的连接在一起。如果你已经有一些基于ASP.NET的网站,UpdatePanel可以让你通过很小的修改轻松的实现AJAX。如果你并不很熟悉AJAX相关的技术比如JavaScript/DOM等,UpdatePanel更是可以让你不用书写一行客户端脚本而实现酷酷的AJAX应用。所需要的就是把需要动态更新的部分放置于一个UpdatePanel中,这一点与MagicAjax Framework有着异曲同工之妙。

使用UpdatePanel很简单,只需要如下几个步骤:

  1. 用ASP.NET实现你的设计,此刻你并不需要考虑任何有关AJAX的问题,就像普通的ASP.NET程序一样。
  2. 在页面上添加一个ScriptManager对象,并设定属性EnablePartialUpdates=true
  3. 将你希望动态更新的部分用UpdatePanel包围起来
  4. 为你添加的UpdatePanel设定Event Trigger

 

只要这些步骤就够了,不需要考虑 XMLHTTPRequest 或者 ActiveX 对象,也不需要书写客户端的脚本或者考虑如何与服务器通信,所有的细节, Atlas 已经为你做好了。

Atlas UpdatePanel的实现也很简单:浏览器如同普通PostBack一样Post回服务器,服务器处理后再次发送给浏览器,这个过程就和传统的页面模型一样。但到达客户端时ScriptManager只更新位于UpdatePanel中的内容和ViewState。

使用UpdatePanel中应该注意的几个问题:

必须指定ScriptManager 中的属性EnablePartialUpdates=true,这样ScriptManager才会将普通的PostBack转化为对服务器的异步调用,也就是AJAX的方法。否则页面只会与传统的ASP.NET一样刷新。

其次,UpdatePanel提供两种引发异步PostBack的Trigger:

  • ControlValueTrigger当某个控件的某个指定的属性变化时更新。例如:ControlID="dropDownList1" PropertyName="SelectedValue"
  • ControlEventTrigger当某个控件发出指定事件时更新。例如:ControlID="button1" EventName="Click"

最后,每个UpdatePanel都有两种更新的方式:

  • Always每次AJAX PostBack或是普通PostBack的时候都会更新该Panel的内容
  • Conditional只有满足如下某一条件时才更新该Panel的内容:
    1. 当Panel中的某个控件引发了PostBack时
    2. 当Panel所指定的某个Trigger被引发时
    3. 当Panel的Update()方法在Codebehind中被调用时

 

一小段 UpdatePanel 的例子
 1
None.gif
<
atlas:ScriptManager 
ID
="ScriptManager1"
 EnablePartialRendering
="true"
 runat
="server"
 
/>
 2
None.gif
<
atlas:UpdatePanel 
ID
="up1"
 runat
="server"
>
 3
None.gif 
<
Triggers
>
 4
None.gif     
<
atlas:ControlValueTrigger 
ControlID
="dropDownList1"
 PropertyName
="SelectedValue"
 
/>
 5
None.gif     
<
atlas:ControlEventTrigger 
ControlID
="button1"
 EventName
="Click"
 
/>
 6
None.gif 
</
Triggers
>
 7
None.gif 
<
ContentTemplate
>
 8
None.gif     Content Here. e.g. TextBox, GridView
 9
None.gif 
</
ContentTemplate
>
10
None.gif
</
atlas:UpdatePanel
>
11
None.gif

 

另外还有两个有用的 Atlas 特性: UpdateProgress 控件可以在更新的等待时间自动显示一段提示信息,可以是一段“更新中……”文字也可以是 GIF 图像或者是更复杂的定制的内容。还有 Atlas 提供的错误处理机制,以便集中处理更新中可能发生的错误。目前有很多 AJAX 程序的错误处理机制设计的并不是很好,包括 Windows Live Mail 。

 

(这篇文章我先写的英文版,然后才是这个翻译版本。自己本身语言能力有限,有些地方生硬甚至语句不通顺,还请各位见谅。今后我会勤加练习用中文表达。更多的Atlas文章可以参考我的英文Blog: )

转载地址:http://qvkaa.baihongyu.com/

你可能感兴趣的文章
回顾2016,展望2017!
查看>>
知其然知其所以然之ArrayList常用源码阅读
查看>>
如何搭建视频通信系统之Android篇
查看>>
理解Window的添加,删除,刷新内部机制
查看>>
慕课网Flask构建可扩展的RESTful API-3. 自定义异常对象
查看>>
SpringMVC源码分析系列(精简)
查看>>
MySQL-性能优化-优化设计和设计原则
查看>>
笔记-SQLite补充
查看>>
记一次 View.getContext() 遇到的大坑
查看>>
Spark Streaming 之 Kafka 偏移量管理
查看>>
【Spring 5】响应式Web框架实战(上)
查看>>
RunTime运行时(一)
查看>>
技术人员的写作利器:Markdown
查看>>
MongoDB主动撤回SSPL的开源许可申请
查看>>
JetBrains推出Datalore 1.0:使机器学习编码更加轻松愉快
查看>>
Redis Labs再次修改许可,没用几个月的Commons Clause或被删除
查看>>
放弃OpenStack?恐怕还不到时候
查看>>
RSocket:又一个REST的挑战者
查看>>
独家解读 | 滴滴机器学习平台架构演进之路
查看>>
深度学习框架 MXNet 成为 Apache 孵化器项目
查看>>