【ASP.NET 基础】用户控件开发
一般我们在编写模块的时候,有的模块完全可以重复使用在不同的页面,重复的编写同样的大量相同控件代码实在烦人,虽然复制粘贴可以快捷解决,但个人感觉不太好,把这些模块的控件合成一个控件方便使用,何乐而不为呢!
最近看了控件开发的方法,基本流程还是了解了,主要就是使用.ascx文件。
我这里是编写的用户登录的控件,不是.NET自带的哦!
先看效果图把,没有写css样式的说:
这是我的解决方案截图:
现在开始开发控件了:
1.新建个Web项目,然后新建一个用户控件文件(.ascx 文件)
代码如下:
LoginOn.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LoginOn.ascx.cs" Inherits="UserControlTry.LoginOn" %> <script runat="server"> public string userName { set { tbUserName.Text = value; } get { return tbUserName.Text; } } </script> <div> <asp:Label ID="lbUserName" runat="server" Text="用户名:" Width="100"></asp:Label> <asp:TextBox ID="tbUserName" runat="server"></asp:TextBox> </div> <br /> <div> <asp:Label ID="lbPassword" runat="server" Text="密码:" Width="100"></asp:Label> <asp:TextBox ID="tbPassword" runat="server" TextMode="Password" ></asp:TextBox> </div> <br /> <div> <asp:Button ID="btnLoginOn" runat="server" Text="登陆" Height="30" Width="60" /> <asp:Button ID="btnReset" runat="server" Text="重置" Height="30" Width="60" OnClick="btnReset_Click" /> </div>
2.然后新建一个网页文件(.aspx 文件),应用该控件就可以了,是不是很简单呢!
ToUseUControl_LoginOn.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ToUseUControl_LoginOn.aspx.cs" Inherits="UserControlTry.ToUseUControl_LoginOn" %> <!--如果将用户控件没有在 web.config 中注册,就需要在在网页文件(.aspx 文件)中使用 Register 注册了。--> <%--<%@ Register TagPrefix="ycl" TagName="LoginOn" Src="~/LoginOn.ascx" %>--%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>用户控件开发测试</title> </head> <body> <%--如果用户控件文件中含有 Button、TextBox、ListBox 一类表单控件, 则在网页文件中,用户控件必须放在具有 runat=server 的窗体标记内,不然会报错。--%> <form id="form1" runat="server"> <div> <%--引用用户控件--%> <ycl:loginon ID="login" runat="server" userName="yechao"></ycl:loginon> </div> </form> </body> </html>
3.如果不想总是在网页控件中注册自己编写的Web控件,就需要在 web.config 配置文件中注册了
Web.config
<?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细消息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <pages> <controls> <!--如果将用户控件在 web.config 中注册,就不需要在在网页文件(.aspx 文件)中使用 Register 注册了。--> <!--用户控件文件(.ascx 文件)和网页文件不能位于同一个目录下。不然会报类似下面的错误--> <!--页“/ToUseUControl_LoginOn.aspx”无法使用用户控件“/LoginOn.ascx”,因为此控件已在 web.config 中注册并且与该页位于同一个目录中。--> <add tagPrefix="ycl" tagName="LoginOn" src="~/controls/LoginOn.ascx" /> </controls> </pages> <compilation debug="true" targetFramework="4.0" /> </system.web> </configuration>
PS:用户控件开发-开始 我是在这看到控件开发的方法的,虽然文章比较早,但知识是永恒的是吧 o(∩_∩)o 哈哈