WEB开发常有一些代是在很多地方重的,象、用/注册和首上面的一些固定目等。些可重用的代可以把它写成一个通用模供需要的地方来引用,这样做即省了开发时间还方便以后的维护

       在ASP.NETweb程中提供了一叫做控件可以帮助我完成这种做法,其文件展名是“.ascx”,由于ascx文件是用来插入ASPX面中使用的,而一个ASPX窗体只能包含一个<form>志,所以ascx控件不能包含<form></form>志。

下面使用一个典入范例来建一个简单的用控件,文件名Hello.ascx:

<html>

<body>

<h1>典入范例</h1>

<hr>

<h3>Hello Word</h3>

</body>

</html>

段代保存Hello.ascx文件,然后在ASPX面上用,具体用如下

Hello.aspx

<%@Register TagPrefix=”wen”

TagName=”Hello” src=”Hello.ascx”%>

<html>

<body>

<form id=frm runat=server>

<wen:Hello ID=MyHello runat=server>

</form>

</body>

</html>

IE浏览器的地址里 http://localhost/Hello.aspx运行,将在面上打印出字符串“Hello word”

码说明:1)指令@Register了用控件文件的标签“Hello”标签”wen”

2src属性是接到用控件的相的文件名;

3<wen:Hello ID=MyHello runat=server>一句是在ASPX窗体中用用控件Hello.ascx句。

以上的演示代没有控件添加属性,下面我们举一个用的文件,把它写成用控件,在向其中添加UserNamePassWord两个属性。向用控件添加属性很简单,只要在ascx文件中的<script></script>中定就行了

UserLogin.ascx

<html>

<title></title>

<body>

<table>

<tr>

<td>名:</td>

<td><asp:TextBox ID=”txt1” runat=”server”></td>

</tr>

<tr>

<td></td>

<td><asp:TextBox ID=”txt2”

TextMode=”password” runat=”server”></td>

</tr>

<hr>

<tr>

<td></td>

<td><asp:LinkButton Text=”” runat=”server”></td>

</tr>

</table>

</body>

</html>

<script language=”C#” runat=”server”>

public string UserName{

get{return txt1.Text;}

set{txt1.Text=value;}

}

public string PassWord{

get{return txt2.Text;}

set{txt2.Text=value;}

}

</script>

至此,我经给UserLogin.ascx文件添加了UserNamePassWord两个属性了,以下DEMO演示如何在ASPX面上引用两个属性

UserLogin.aspx

<%@Register TagPrefix=”wen”

TagName=”UserLoginContorl” src=” UserLogin.ascx” %>

<html>

<title>引用属性</title>

<body>

<form runat=”server”>

<wen: UserLogin.ascxID=”MyLogin” runat=”server”>

</form>

名:<asp:Label ID=”Lab1”runat=”server”/><br>

<asp:Label ID=”Lab2”runat=”server”/><br>

</body>

</html>

<script language=”C#” runat=”server”>

void Page_Load(Object sender,EventArgs e){

if(IsPostBack){

Lab1.Text=MyLogin.UserName;

Lab2.Text=MyLogin.PassWord;

}

}

</script>