AJAX笔记之二:UpdatePanel

来源:互联网 发布:笔下文学软件下载 编辑:程序博客网 时间:2024/06/14 07:14

======================================================
注:本文源代码点此下载
======================================================

updatepanel是最重要的ajax控件, 它是一个容器, 是局部刷新的单位.

首先来看它的刷新模式.

在上一篇笔记中, 我使用了updatepanel "主动"指定trigger 的方法, 另外, 也可以在updatepanel端不做任何设定, 而"被动" 地接受刷新.

所以大体来说, 有三种方式使其更新:

.由updatepanel的子控件引起回传, 自动更新.这种模式是默认的行为, 举个简单的例子, 在updatepanel里放一个button, 给button的点击事件写代码, 这样当点击这个按钮时, updatepanel进行回传并更新自己的内容. 但是这时, 如果button的点击事件更改了updatepanel以外部分的内容, 则更新不会马上显示出来, 因为整页并没有更新, 这个实验上一篇笔记已经描述了.

updatepanel指定一个非子控件的控件, 而这个trigger 自己并不知道它会引起整页回传还是updatepanel的局部回传. 这种做法就是上一篇所使用的方法. 设置updatepanel的triggers 属性, 而外部的button 本来应该是引起整页回传的, 但是经过updatepanel的声明, 这个button 就变成了updatepanel的独占的了, 无需经过这个button的同意.

updatepanel自己不知道自己何时将被更新, 完全取决于其它控件. 这种情况下, 必须把它的updatemode设为conditional, 这样, 任何一个函数都可以调用它的update 方法使其重绘, 无论是否子控件都无关紧要.

有了以上的讨论, 再看updatepanel 的几个关键属性就很容易理解了, 如果要使用第二, 第三种方式使其更新 ,必须将updatemode属性设置了conditional, 而第一种方式则必须设置为always,如果希望子控件能够触发事件, 则把childerastriggers 设置为true, 否则设为false.

updatepanel可以互相嵌套, 但是这种嵌套只是外观上的嵌套, -----内层的updatepanel 更新时, 并不会引起外层的updatepanel 重绘.

然后再看updatepanel 的排版.

updatepanel没有height, width 等属性, 所以也就无法设定其尺寸, 然而从工具箱里拖过来以后, 它会有一个默认的大小, 如果往里面往两个控件, 这两个控件就会一上一下地叠起来, 而不会排成一排 . 如果希望子控件排 成一排, 则需要在updatepanel 的代码页里, 写一个div, 把所有内容都放进这个div 里面, 然后设定div的宽度 大于等于所有控件横排的宽度, 则这些控件就会自动排 成一排了.


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击