您的位置:首页 > 其它

第十九讲 DataList数据显示控件(三)

2014-05-18 19:38 190 查看
主要内容:

DataList实例继续,基于存储过程的真分页

ViewState视图状态

1. 思路1:使用Session存储页数,但是这个方法并不特别的好!因为Session这个值是独立于浏览器的,只作用于当前客户端,当前客户端的不同页面都可以访问。它的值对于其它浏览器页面是无效的。

2. 思路2:ViewState,它和Session是一样的,都是用来保存值的,区别有:

Session存储在服务器端,同一浏览器不同页面都可以访问

ViewState 存储在客户端,同一浏览器只能在当前页面访问,页面关闭即丢失无效了

3. 实例讲解ViewState视图状态

如:page_Load事件中添加如下代码

if(!page.IsPostBack)

{

label.Text="这个值会不会在刷新时被保存在页面上呢?"

}

由上面的代码,我们知道,IsPostBack属性如果为false那么,它只在页面首次加载时执行执行代码中的语句,当点击一个按钮提交一次数据时,它将不会再执行,但页面会被重新加载一次,理论来讲,label的值应该会被清空,但是结果恰恰相反,Label的值竟保存下来了。

其真实的原因就是:ViewState的功能所至。

其实仔细查看显示的控件会知道,它里就有一个ViewState开关的属性:EnableViewState(控件是否自动保存其状态以便用于往返过程),如果此值被设置为false,还是上面那段代码,再次执行后,label控件中的值在页面提交数据后,它的值就会被清空或恢复显示控件的默认值。

ViewStae这个视图状态就是将Label控件值在HTML的代码当中保留一个备份,每次向服务器提交页面数据时就将这备份的代码传过去,服务器看到它不用做任何动作直接在返回到客户端。

4. ViewState的用法跟Session的用法是一样的,只是它的作用域只能在当前客户端的当前页面中。出了这个页面,就不再有效,因为它是作为一个HTML标签存储在HTML代码当中的。

5. SQL中的一个函数数,Ceiling() 无条件向上舍五入运算,即:

Ceiling(4/3.0)=2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐