黑马程序员-AJAX学习日记

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

MasterPage母版:把页面布局好,需改动的地方留空留空的部分由子页面填充。母页版几乎可以使用所有的普通Webform页面可以使用的技术。

实例母版页的建立:前台代码,前台取名为C01Itcast.master

<head runat=”server”>

 <title></title>

 <style type=”text/css”>

 #tbList{border:1px soild #000;width:100%;height:600px}

</style>

 <asp:ContentPlaceHolder id=”head” runat=”server”>// ContentPlaceHolder用来“挖坑“根据可根据需要设置

 </asp:ContentPlaceHolder>

</head>

<body>

  <form id=”form1” runan=”server”>

   <table id=”tbList”>

   <tr><td colspan=”2”>菜单栏<asp:Image ID=”imghead” Runat=”server”></td></tr>   //colspan合并两个单元格

   <tr>

    <td>链接很多</td>

    <td style=”width:70%”>子页内容

  <asp:ContentPlaceHolder id=”contentBody” runat=”server”>  //ContentPlaceHolder内容占位符

</asp:ContentPlaceHolder>

</td>

   </tr>

   <tr><td clospan=”2”>页尾,公司资料--------</td></tr>

  </table>

</form>

</body>

添加aspx,勾选母版页代码如下:

<asp:Content ID=”Content1” ContentPlaceHolderID=”head” Runat=”server”>

</asp:Content>

<asp:Content ID=”Content2” ContentPlaceHolder ID=”contentBody” Runat=”server’>

<img src=”up/1.jpg”>//程序运行的结果是在第二行的第二个单元格内显示一个图片,图片地址为up/1.jpg

</asp:Content>

Aspx.cs 代码如下

 Protected void Page-Load(object sender,EventArgs e)

{

this.Master.FindControl(“imghead” as image).ImageUrl=”up/2.jpg”;//Master属性为当前子页面的母版页,即在子页面中寻找母版页的元素。运行结果在第一行出现图片,图片地址为”up/2.jpg”

}

为什么.master不能被访问.CS文件为什么不能被下载?在整个freamwork配置文件里面已经写好master是由一个forbidden类处理,此类不能真正的创建页面对象,而是抛出一个异常。

server属性  server.Transferserver.excute都不能够访问外网,起重定向的作用。

server.excute:执行完重定向页面后会反过来执行当前页面,Server.Transfer执行完重定向页面后不会返回当前页面继续执行当前页面代码。

当我们使用Server.ExcuteServer.transfer做服务器内部定向时,会将当前页面的上下文对象传给目标页面,但是在目标页面中,不能确定为目标页面的回传动作,所以不会执行目标页面的空间事件。

代码: protected viod Page-Load(object sender,EventArgs e)

Response.Write(“Hello”);  //hello可以输出

   Server.Transfer(“login.aspx”);//能够成功转移到login.aspx页面

            Response.Write(“你好!”);//你好不能输出

}

 

IsPostBack用法实例

.aspx.cs中代码:

Protected void Page-Load(object sender ,EventArgs e)

{

   //只要浏览器发送到服务器的请求报文中包含名为—VIEWSTATE的键服务器就会把当前页面对象的IsPostBack属性设置为true

  if(IsPostBack)//用在包含Runat=server的表单页面中,判断是否为点击按钮回传

{

 Response.Write(“Page-Load,点击按钮”);

}

  else

{

 Response.Write(“Page-Load,链接或地址栏”);

}

}

.aspx中代码:

<head runat=”server”>

<title></title>

</head>

<body>

<form id=”form1” action=”” method=”post” >

<div>

<input type=”text” name=”txtName” /><input type=”submit”>

<input type=”hidden” name=”--VIEWSTATE” value=””/>

</div>

</form>

</body>//程序运行结果,一开始显示页面是:Page-Load,链接或地址栏,点击按钮显示Page-Load,点击按钮,地址栏的最后加上—VIEWSTATE(当有Runat=”server”表单时浏览器会自动发送—VIEWSTATE),Page-Load,点击按钮。

Cache(缓存)

如果每次进入页面都从数据库调取数据,在数据防库访问量大的情况下,为是速度变慢,因此可把要输出的数据放在缓存中,这样下次调取就可直接从缓存中输出。缓存就是一种空间换时间的技术。比如CPU的二级缓存、内存、Windows文件都属于二级缓存。

同时存在缓存失效的问题,这是为了保证从数据库读取的数据跟从缓存读取的数据一致。

Asp.net的缓存包括:页面缓存、数据源缓存(不灵活)、数据缓存(灵活)

实例:从程序运行结果可以得出,第一次程序运行是从数据库中取数据,第二次即从缓存争取数据,并且从缓存中取数据的时间要小于从数据库中取数据的时间。

建立aspx.cs页面代码如下

protected viod Page-Load(object sender,EventArgs e)

{

    List<MODEL.Classes> List=null;

if(Cache[“datalist”]==null)   //检查缓存中是否包含datalist

{

   list=new Bell.Classes().GetList();

   Cache[“datalist”]=List;  //将数据放入缓存

   Response.Write(“缓存中无数据,直接从数据库中取数据”+DataTime.Now.Subtract(Context.Timestamp).TotalMilliseconds.ToString());

//Context.Timestamp:上下文当前时间Subtract:减去DataTime.Now.Subtract(Context.Timestamp).TotalMilliseconds.ToString():求的运行时间。

}

else

{

   list=Cache[“datalist”] as List<MODEL.Classes>;//读取缓存数据

   Response.Write(“从缓存中取数据”+ DataTime.Now.Subtract(Context.Timestamp).TotalMilliseconds.ToString())

}

}

foreach(MODEL.Classes model in List)

{

  Literal1.Text+=model.CName+”<br/>”;

}

aspx页面代码如下:

<head  runat=”server”>

<title></title>

</head>

<body>

<form id=”form1” runat=”server”>

<asp:Literal ID=”Literal1” runat=”server”></asp:Literal>

</form>

</body>

带缓存失效(即包括缓存优先级)的缓存使用实例:

将上面程序的Cache[“datalist”]=List;语句换成

Cache.Insert(“datalist”,list,null,DataTime.Now.AddSeconds(20),System.Web.Caching.Cache.NoSlidingExpiration);

//null表示缓存依赖项DataTime.Now.AddSeconds(20)设置绝对过期时间为20System.Web.Caching.Cache.NoSlidingExpiration滑动过期时间。这句话的意思是:将数据放入缓存,并且设置绝对过期时间为20

用带绝对过期时间代替上面程序的那句代码后,程序的运行结果为,一开始运行,取数据从缓存中取得,经过20秒后,再去数据就要从数据库中取,不能直接从缓存中取,同时缓存的数据也会更新。

 

页面缓存(将页面对象运行后生成的整个页面生成的html代码保存在缓存中,下次有请求来时直接从缓存中取出html代码发送出去)

数据源缓存:设定ObjectDataSourceCacheDuration(缓存时间)EnableCaching=true,这样每隔CacheDuration时间就从数据库查询,否则从缓存查数据。

全局文件:

添加Web->全局应用程序类,注意文件名不要改

全局文件是对Web应用生命周期的一个时间相应的地方。

Web应用启动时,初始化一些代码写到Application-Start中,用用关闭的时候Application-end被调用。当一个用户请求来的时候Application-Beginquest被调用

当应用中出现未捕获异常时,Appication-Error被调用,用Http.Current.Server.GetLastError()获得异常信息,然后用Log4Net记录到日志中。

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值