1.在页面上放置一个UpdatePanel之后,该UpdatePanel当中所有的控件,都可以触发该UpdatePanel的异步Postback功能。 2.异步Postback处罚时,该UpdatePanel范围中的内容会自动刷新,后端的事件过程码也会被执行到,但页面不会触发传统的Postback(达成AJAX效果)。 3.当页面上放置有多个UpdatePanel控件时,UpdatePanel设置为Always的UpdatePanel,会被任何的异步Postback动作所刷新(不管该异步Postback动作是不是由该UpdatePanel自己内部的控件所触发的)。若UpdateMode设为Conditional,则只会被位于该UpdatePanel自己内部的控件触发异步刷新。 4.若要将UpdatePanel外部的控件(以Button为例)设置为可触发该UpdatePanel的异步刷新,可通过该UpdatePanel的Triggers属性将Button注册成AsyncPostBackTrigger。 5.若要将UpdatePanel内部的控件(以Button为例)设置为不可触发该UpdatePanel的异步刷新(也就是取消UpdatePanel当中某个控件触发异步Postback的能力),可通过该UpdatePanel的Triggers属性将Button注册成PostBackTrigger。 6.若要通过代码将某个位于UpdatePanel外的控件设为可触发异步Postback,请用ScriptManger的RegisterAsyncPostBackControl()方法。 7.若要通过代码将某个位于UpdatePanel内的控件改为触发同步Postback(也就是取消其触发异步Postback的能力),请用ScriptManger的RegisterPostBackControl()方法。 确保性能的的使用策略 8.只有一定需要被异步刷新的内容,才放到UpdatePanel当中。 9.没有一顶需要异步刷新的内容,可以放置到UpdatePanel外面。 10.如果可以,尽可能吧UpdatePanel的UpdateMode设为Conditional。这样也可以达到减少刷新范围面积的效果。 //来源 ASP.NET AJAX应用剖析立即上手 董大伟著 电子工业出版社
例子,关于UpdatePanel 控件--RegisterAsyncPostBackControl方法:
Button1为UpataePlanel之外的控件!
在Page_Load 里加入以下代码:然后给Button1添加“点击”等事件,然后运行就可以了!RegisterPostBackControl类似,但是控件之间的包含关系与触发方式不同而已!
protected void Page_Load( object sender, EventArgs e){ ScriptManager1.RegisterAsyncPostBackControl(Button1);}