主要内容:
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