(十二)Asp.NET中的用户控件

在生活中我们在浏览一些网站的时候,有些功能模块我们发现在很多页面中都出现过,比如搜狐网中的这个搜索框,我们打开搜狐首页和搜狐新闻页的时候都会看到在页面上有个搜索的区域,并且都可以实现搜索功能。我们常见的其他主流平台均有类似的效果,那么我们作为开发者,对于不同页面中的相同的功能,我们是否需要每个页面都开发一个呢?显然十不现实的,如果我们项目的页面足够多,那么每个页面都需要写同样的代码,开发和维护起来十分麻烦,那么我们能否把相同的功能做成一个单独的模块,其他页面需要这个模块的时候直接引用过来就可以呢?就好比我们ASP.NET的服务器控件一样,哪里需要这个控件,只需要在页面中拖入改控件即可。

如:

用户控件:在 ASP.NET 中使用与 ASP.NET 页相同的语法,以声明方式创作的服务器控件。该控件用 .ascx 扩展名保存为文本文件。用户控件允许对页功能进行分区和重用。

使用示例:

一、 在项目上右键—添加—新建项—选择Web Froms用户控件:

 

二、 在创建出来的用户控件种放入文本框、按钮等服务器控件,用来实现搜索功能:

 

 

 

三、 为用户控件中的搜索按钮添加点击事件:

 

四、 在项目中添加一个新的Web窗体Index.aspx,进行基本的内容样式布局后,切换到设计视图中,将添加好的用户控件拖入到页面中:

 

 

五、 在项目中再添加一个新的Web窗体Home.aspx,按照上一步的操作在本页面中添加创建好的搜索用户控件:

 

 

六、 分别浏览Index.aspx页面和Home.aspx页面,并使用搜索功能,发现在两个页面中均可以使用:

 

 

 

在我们的ASP.NET中,用户控件这种技术就是专门来解决这样的问题的,我们可以把不同页面公共的功能放在用户控件中,用户控件使用起来和普通的Web页面没有任何区别。然后在其他的需要该功能的页面中拖入我们创建好的用户控件即可。

前台Control指令:

<%@ ContrControl指令ol Language="C#" AutoEventWireup="true" CodeBehind="UserLogin Control.ascx.cs" Inherits="DvdSaleSys.Controls.UserLoginControl" %>

后台代码 :

public partial class _Controls_UserLoginControl : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) ... ... }

用户控件是一种自定义的组合控件。

  1. 封装独立的功能(显示列表等)
  2. 像页面一样方便的编辑,像控件一样使用拖拽方式使用。
  3. 后缀名为.ascx

作用:页面代码的重用

 

用户控件与页面的区别?

  

 

  后缀名:用户控件以.ascx为后缀名,而页面后缀名是.aspx

  指令:用户控件为@Control,页面是@Page

  继承:用户控件继承自System.Web.UI.UserControl,而页面继承自System.Web.UI.Page

  用户控件不可直接访问,页面可直接访问

 

posted @ 2020-12-10 08:46  JuneDream  阅读(544)  评论(0编辑  收藏  举报