一. 简介

当 ASP.NET 内置的 Web 服务器控件不能满足我们开发的需要时,通过我们会创建自己的控件。而在 ASP.NET 中有两个选择:

  1. 用户控件:用户控件是能够在其中放置标记和 Web 服务器控件的容器。然后,可以将用户控件作为一个单元对待,为其定义属性和方法。(这就是咱们这次要讲的啦)
  2. 自定义控件:自定义控件是编写的一个类,此类从 Control 或 WebControl 派生。(关于这个方面的技术,目前为止我只按MSDN的演练做了一个练习,后面有时间针对它的开发与使用再写一篇更详细一点的)
    创建用户控件要比创建自定义控件方便很多,因为可以重用现有的控件,所以最适合创建具有复杂界面元素的控件。用户控件与 Web 窗体(.aspx)很相似,可以同时具有前台页面和后台代码,在前台可以向其中添加所需的标签和服务器控件,在后台可以针对这些对象进行逻辑操作。不过它们存在以下这些区别:
    (1)用户控件的文件扩展名为 .ascx,而 Web 窗体的扩展名为 .aspx;
    (2)用户控件使用 @Control 指令声明,而 Web 窗体使用 @Page 指令;
    (3)用户控件不能作为独立文件运行,而必须其它服务器控件一样,将它们添加到 Web 窗体中;
    (4)用户控件中不能包含 <html>、<body>和 <head> 等标签。
    用web窗体(.aspx)开发时,会发现每个页面中有大量的重复代码,可以将重复部分摘出来到用户控件中,然后每个页面调用用户控件就可以了,这样会减少很多代码,既方便又节约时间。

二.案例

如下图,一个简单的页面,左侧一个小导航

在这里插入图片描述原本的aspx代码:
在这里插入图片描述现在想将这个导航封装成一个用户控件,在aspx页面的上级上右击→添加→web窗体用户控件,如下图(图三)
在这里插入图片描述因为是左侧导航,在这里起名为left,如下图left.ascx代码
在这里插入图片描述调用直接选中控件拖到aspx中要调用的位置处就可以了,如图
在这里插入图片描述
在头部也会自动生成一行代码
在这里插入图片描述每个页面要用到这个导航就直接拖动用户控件到相应位置就可以了,当然用户控件用到一些参数的调用,ascx也可以书写后台代码如下:
在这里插入图片描述根据个人需求…。

posted on 2019-10-10 10:30  豆皮没有豆  阅读(188)  评论(0)    收藏  举报