ASP.Net中程序构架与程序代码的分离
)
{
//登陆成功
lblMsgShow.Text = "登陆成功";
lblUserName.Text = dr["id"].ToString();
lblPurview.Text = dr["purview"].ToString();
}
else
{
//登陆不成功
lblMsgShow.Text = "登陆不成功";
}
dr.Close();
MyConn.Close();
}
}
进行事件处理是定义在一个类中的(本例中是Aspcn,注意大小写),由于需要与Web Forms相关联,所以此类还必须继承Page类。
分析程序,大家可以看到程序中对事件的处理操作是与普通的未进行代码分离的程序是一样的,并没有什么特别的地方。(本人在程序中已经给出的相关注释,相信对大家理解程序有所帮助)
使用CodeBehind技术后,大家需要多写一些代码,比如声明控件等,也许大家很不喜欢多写这样的代码,但是大家也必须看到使用了CodeBehind技术后,主程序的可读性大大增加了。在Example1.aspx中相信大家很快就可以区分页面构架的各个部分,大家想想这些构架如果在其它技术是否能看得如此清楚?
(这里的程序只做演示用,呵呵,大家可不要抓我什么引号漏洞这些小辫子哟)
2 用户控件(UserControl)
CodeBehind技术真正实现了代码与构架的分离,比以前的技术前进了一大步,但是它的缺陷也是显而易见的,比如主页面中部那个登陆区,如果内容很多,HTML显示代码的依然会占用很大的区域,程序的可读性依然会降低。
ASP.Net也提供了解决办法,这就是用户控件。
用户控件我们可以将其视为不用编译的Server控件。即然是控件,那么就肯定会遵从控件的使用方法。我们将Example1.aspx中的每个Panel整体看成为一个控件,因此Example1.aspx的主体部分通过使用用户控件便可以减少为只有三行:
<% @ Register TagPrefix="aspcn" TagName="Header" Src="UserControls/Header.ascx" %>
<% @ Register TagPrefix="aspcn" TagName="Logon&q
<% @ Register TagPrefix="aspcn" TagName="Footer" Src="UserControls/Footer.ascx" %>
<html>
<head>
<title></title>
</head>
<body>
<form runat="server">
<aspcn:Header id="MyHeader" runat="server" />
<aspcn:Logon id="MyLogon" runat="server" />
<aspcn:Footer id="MyFooter" runat="server" />
</form>
</body>
</html>
执行这个程序,其运行结果与使用CodeBehind技术的结果是一样的,但是现在的ASP.Net程序更加容易区分页面构架了。
<aspcn:Header id="MyHeader" runat="server" />
<aspcn:Logon id="MyLogon" runat="server" />
<aspcn:Footer id="MyFooter" runat="server" />
这三行代码,使用了三个用户控件,这么少的代码大家一眼就可以清楚的看到页面被分为三个部分。
要使用用户控件就必须使用Register指令,TagPrefix属性定义是的一个Namespace的名字,以保证它在这个页面的唯一性;TagName属性是在定义一个类(class)的别名,由于用户控件执行时是被CLR编译成为类来执行的,所以就必须给本程序中每个用户控件一个唯一的名字,以便于大家区分;S 《ASP.Net中程序构架与程序代码的分离(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/168961.html
{
//登陆成功
lblMsgShow.Text = "登陆成功";
lblUserName.Text = dr["id"].ToString();
lblPurview.Text = dr["purview"].ToString();
}
else
{
//登陆不成功
lblMsgShow.Text = "登陆不成功";
}
dr.Close();
MyConn.Close();
}
}
进行事件处理是定义在一个类中的(本例中是Aspcn,注意大小写),由于需要与Web Forms相关联,所以此类还必须继承Page类。
分析程序,大家可以看到程序中对事件的处理操作是与普通的未进行代码分离的程序是一样的,并没有什么特别的地方。(本人在程序中已经给出的相关注释,相信对大家理解程序有所帮助)
使用CodeBehind技术后,大家需要多写一些代码,比如声明控件等,也许大家很不喜欢多写这样的代码,但是大家也必须看到使用了CodeBehind技术后,主程序的可读性大大增加了。在Example1.aspx中相信大家很快就可以区分页面构架的各个部分,大家想想这些构架如果在其它技术是否能看得如此清楚?
(这里的程序只做演示用,呵呵,大家可不要抓我什么引号漏洞这些小辫子哟)
2 用户控件(UserControl)
CodeBehind技术真正实现了代码与构架的分离,比以前的技术前进了一大步,但是它的缺陷也是显而易见的,比如主页面中部那个登陆区,如果内容很多,HTML显示代码的依然会占用很大的区域,程序的可读性依然会降低。
ASP.Net也提供了解决办法,这就是用户控件。
用户控件我们可以将其视为不用编译的Server控件。即然是控件,那么就肯定会遵从控件的使用方法。我们将Example1.aspx中的每个Panel整体看成为一个控件,因此Example1.aspx的主体部分通过使用用户控件便可以减少为只有三行:
<% @ Register TagPrefix="aspcn" TagName="Header" Src="UserControls/Header.ascx" %>
<% @ Register TagPrefix="aspcn" TagName="Logon&q
uot; Src="UserControls/Logon.ascx" %>
<% @ Register TagPrefix="aspcn" TagName="Footer" Src="UserControls/Footer.ascx" %>
<html>
<head>
<title></title>
</head>
<body>
<form runat="server">
<aspcn:Header id="MyHeader" runat="server" />
<aspcn:Logon id="MyLogon" runat="server" />
<aspcn:Footer id="MyFooter" runat="server" />
</form>
</body>
</html>
执行这个程序,其运行结果与使用CodeBehind技术的结果是一样的,但是现在的ASP.Net程序更加容易区分页面构架了。
<aspcn:Header id="MyHeader" runat="server" />
<aspcn:Logon id="MyLogon" runat="server" />
<aspcn:Footer id="MyFooter" runat="server" />
这三行代码,使用了三个用户控件,这么少的代码大家一眼就可以清楚的看到页面被分为三个部分。
要使用用户控件就必须使用Register指令,TagPrefix属性定义是的一个Namespace的名字,以保证它在这个页面的唯一性;TagName属性是在定义一个类(class)的别名,由于用户控件执行时是被CLR编译成为类来执行的,所以就必须给本程序中每个用户控件一个唯一的名字,以便于大家区分;S 《ASP.Net中程序构架与程序代码的分离(第3页)》