清清楚楚asp.net ( 三 ) :ViewState
ViewState概述
页面在初始化的时候,asp.net会在页面内建ViewState属性,我们可以将需要保存的数据放到视图状态的集合中,以达到在页面回发的时候保存数据的目的。
使用ViewState以前,需要注意以下内容:
1.ViewState依赖于字典集合。
2.ViewState中的每一项通过唯一的字符串名字进行索引。
我们在给视图集合的某个索引项赋值的时候,如果视图集合中存在该索引项,则赋值;如果没有,则改索引项将会被自动添加并赋值。
在尝试从视图集合中取出某个索引项的值的时候,如果视图集合中不存在此索引项的时候,将会抛出异常。
因此我们在取值的时候,通常会加个判断。
例如:
代码
if (ViewState["test"] != null)
{
int test = (int)ViewState["test"];
}
3.ViewState可以保存简单数据类型和自定义对象。
4.任何通过索引字符串从ViewState中取出来的数据都是Object类型,我们需要显式的将其转换成需要的类型,如上例。
使用ViewState的一个例子
html
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br/>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br/>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br/>
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br/>
<asp:Button ID="Button1" runat="server" Text="Save" onclick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="Restore" onclick="Button2_Click" />
<asp:Button ID="Button3" runat="server" Text="SaveWithDictionary" onclick="Button3_Click" />
相关文档:
以前做.NET winform的时候,一直都是用 Console.Write向控制台输出信息的,这次做web的时候,发现这个语句用不了。
查了一下资料,才发现web程序执行时,是被附加到IIS进程的一个单独的AppDomain中的,所以就算有输出也看到,所以Console.Write调试信息无法显示出来。
那么解决办法是,用debug代替:
System.Diagn ......
在网上找了好多,实现方式大多是使用定时器
个人觉得定时器会造成一定程度上的假象
(如:定时器还没结束页面已经加载完毕,或定时器结束后页面还没加载完成)
本方法利用的是javascript,先网页面里面写入一个层,显示加载框,然后等页面结束后
在body的onload中写入事件,隐藏该对话框
方法(我的系统是多个页面,所 ......
一.Code Behind简介
Code Behind就是所谓的代码分离,自从Microsoft公司推出了ASP.NET以后,Code
Behind就是一个热门的话题。在一般的ASP.NET文件中,Code
Behind主要是用二个文件来创建一个ASP.NET的页面,其中一个是设计文件,一般以.aspx或者.ascx做为扩展名,而另外一个是程序代码文
件,一般以.vb或者.cs做为 ......
asp.net的底层运作已经也乱谈过一番, 今天记一下URLRewrite的方法。
IIS收到请求-->ISAPI用于处理该请求-->BeginRequest开始-->EndRequest结束-->输出Response
中间有好多其它的流程就不标记了,这里只是列出URLRewrite所走的流程。
其实就是在BeginRequest事件中调用HttpContext的RewritePath方法,将该请 ......
网页事件
典型的使用方式
PreInit
PreInit事件是网页生命周期中非常早起的一个事件,在PreInit事件触发之后,就会加载用户设置信息与网页主题。我们通常使用PreInit事件来执行下列处理:
l 检查IsPostBack属性,来确认网页是否为第一次被处理。
l   ......