1、ASP.NET中开发服务器控件有两种方法:自定义控件与web用户控件
本次来讲web用户控件
2、注意点如下:
(1) 创建web用户控件是一个扩展名为.ascx的文本文件,在文本文件顶部添加@Control指令,并通过Language指定开发语言。asp.net页面使用的是@Page指令。
(2) 向文本文件中添加html标记文本和asp.net服务器控件。可以添加除html、body、form之外的任何html标记。这是因为用户控件不能单独使用,必须作为Web页面的一部分使用。
下面是详细例子:开发一个登陆的自定义用户控件。Login.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="MyWebUserControl.ascx.cs" Inherits="MyWebUserControl" %>
<div style="300px;height:200px;border:1px solid #999;">
<h3 style="margin-left:10px;"><asp:Label ID="lblTitle" runat="server" Text="欢迎登陆" ></asp:Label></h3>
<div style="margin-left:20px;margin-bottom:10px;">用户名:<asp:TextBox ID="txtUserName" Width="100px" runat="server"></asp:TextBox></div>
<div style="margin-left:20px;margin-bottom:10px;">密 码:<asp:TextBox ID="txtPwd" Width="100px" runat="server"></asp:TextBox></div>
<div style="margin-left:20px;margin-bottom:10px;">性 别:<asp:DropDownList ID="ddlSex" Width="100px" runat="server">
<asp:ListItem Selected="True" Value="男" Text="男"></asp:ListItem>
<asp:ListItem Value="女" Text="女"></asp:ListItem>
</asp:DropDownList></div>
<div style="margin-left:20px;margin-bottom:10px;"><asp:Button ID="btnLogin" runat="server" Text="登陆" Width="80px" /> <asp:Button ID="btnReset" runat="server" Text="取消登陆" Width="80px" /></div>
</div>
3、使用用户控件
必须在使用用户控件的页面先注册,使用@Register 注册用户控件,然后设置该指令的TagPrefix、TagName和Src属性。TagPrefix表示标记前缀名,TagName表示标记名,Src为用户控件的路径。
使用代码如下:
<%@ Register TagPrefix="user" TagName="Login" Src="~/MyWebUserControl.ascx" %>
<user:Login ID="login" runat="server" />
4、设置用户控件的属性
在Login.ascx文本中添加如下代码
<script runat="server">
//设置登陆头部显示文字属性
public string LoginTitle
{
get { return lblTitle.Text; }
set { lblTitle.Text = value; }
}
//设置用户名默认值
public string UserName
{
get { return txtUserName.Text; }
set { txtUserName.Text = value; }
}
//设置传入的Url地址
private string url;
public string Url
{
get { return url; }
set { url = value; }
}
</script>
5、添加方法
<script runat="server">
//添加方法
//取消登陆方法
public void ResetLogin(object sender,EventArgs e)
{
txtUserName.Text = "";
txtPwd.Text = "";
return;
}
//登陆并跳转到指定页面,传递用户名和密码
public void Login(object sender,EventArgs e)
{
//验证用户名和密码是否为空
if (txtUserName.Text == "" || txtPwd.Text == "")
{
Page.RegisterStartupScript("ss", "用户名或者密码为空,请输入完全");
return;
}
else
{
Response.Redirect(url+"?user="+txtUserName.Text+"&&pwd="+txtPwd.Text);
}
}
</script>
使用页面
<user:Login ID="login" runat="server" LoginTitle="欢迎登陆怀化学院教务系统" UserName="luoxinhua" Url="TestLogin.aspx" />