【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 哈哈

标签