[ASP.NET 开发系列 ] 在用户控件中添加属性
作者:tigerwen01
在 WEB 开发中经常有一些代码是在很多地方重复出现的,象导航栏、用户登录 / 注册和首页上面的一些固定栏目等。这些可重用的代码我们可以把它写成一个通用模块供需要的地方来引用,这样做即节省了开发时间还方便以后的维护。
在 ASP.NET 的 web 编程中提供了一种叫做“用户控件”可以帮助我们完成这种做法,其文件扩展名是“ .ascx ”,由于 ascx 文件是用来插入 ASPX 页面中使用的,而一个 ASPX 窗体只能包含一个
1<form> 标志,所以 ascx 用户控件不能包含 <form></form> 标志。
2
3下面使用一个经典入门范例来创建一个简单的用户控件,文件名为 Hello.ascx:
4
5<html>
6<body>
7<h1> 经典入门范例 </h1>
8<hr/>
9<h3>Hello Word</h3>
10</body>
11</html>
12
13把这段代码保存为 Hello.ascx 文件,然后在 ASPX 页面上调用,具体调用如下:
14
15Hello.aspx
@Register TagPrefix=”wen” TagName=”Hello” src=”Hello.ascx”
1
2<html>
3<body>
4<form id="frm" runat="server">
5<wen:hello id="MyHello" runat="server">
6</wen:hello></form>
7</body>
8</html>
9
10在 IE 浏览器的地址里输入 http://localhost/Hello.aspx 运行,将在页面上打印出字符串“ Hello word ”。
11
12代码说明: 1 ) 指令 @Register 定义了用户控件文件的标签名“ Hello ”和标签前缀名 ”wen ” ;
13
142 ) src 属性是连接到用户控件的相关的文件名;
15
163 ) <wen:hello id="MyHello" runat="server"> 这一句是在 ASPX 窗体中调用用户控件 Hello.ascx 的语句。
17
18以上的演示代码没有给控件添加属性,下面我们举一个用户登录的文件,把它写成用户控件,在向其中添加 UserName 和 PassWord 这两个属性。向用户控件添加属性很简单,只要在 ascx 文件中的 <script></script> 块中定义就行了。
19
20UserLogin.ascx
21
22<html>
23<title> 用户登录 </title>
24<body>
25<table>
26<tr>
27<td> 用户名: </td>
28<td><asp:textbox id="”txt1”" runat="”server”"></asp:textbox></td>
29</tr>
30<tr>
31<td> 密 码: </td>
32<td><asp:textbox id="”txt2”" runat="”server”" textmode="”password”"></asp:textbox></td>
33</tr>
34<hr/>
35<tr>
36<td></td>
37<td><asp:linkbutton runat="”server”" text="”" ”="" 登陆=""></asp:linkbutton></td>
38</tr>
39</table>
40</body>
41</html>
42<script language="”C#”" runat="”server”">
43
44public string UserName{
45
46get{return txt1.Text;}
47
48set{txt1.Text=value;}
49
50}
51
52public string PassWord{
53
54get{return txt2.Text;}
55
56set{txt2.Text=value;}
57
58}
59
60</script>
61
62至此,我们已经给 UserLogin.ascx 文件添加了 UserName 和 PassWord 这两个属性了,以下 DEMO 演示如何在 ASPX 页面上引用这两个属性。
63
64UserLogin.aspx
@Register TagPrefix=”wen” TagName=”UserLoginContorl” src=” UserLogin.ascx”
1
2<html>
3<title> 引用属性 </title>
4<body>
5<form runat="”server”">
6<wen: id="”MyLogin”" runat="”server”" userlogin.ascx="">
7</wen:></form>
8
9用户名: <asp:label id="”Lab1”" runat="”server”/"><br/>
10
11密 码: <asp:label id="”Lab2”" runat="”server”/"><br/>
12</asp:label></asp:label></body>
13</html>
14<script language="”C#”" runat="”server”">
15
16void Page_Load(Object sender,EventArgs e){
17
18if(IsPostBack){
19
20Lab1.Text=MyLogin.UserName;
21
22Lab2.Text=MyLogin.PassWord;
23
24}
25
26}
27
28</script></wen:hello></form>