且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ASP.NET用户控件的利弊和使用实例

更新时间:2022-08-17 18:40:25

创建用户控件要比创建自定义控件方便很多,因为可以重用现有的控件。用户控件使创建具有复杂用户界面元素的控件极为方便。在HoverTreeTop项目中,新增图片的浏览功能,效果请看:http://hovertree.com/top/htimg/ 而图片的添加就使用了用户控件。用户控件为:UCPictureAdd.ascx ,在PictureAdd.aspx页面中使用。

在PictureAdd.aspx页面中使用用户控件的代码:
<%@ Page Title="" Language="C#" MasterPageFile="~/HTPanel/HMaster/HPanel.Master" AutoEventWireup="true" CodeBehind="PictureAdd.aspx.cs" Inherits="HoverTreeTop.HoverTree.HoverTreePanel.HTPanel.HPicture.PictureAdd" %>

<%@ Register Src="~/htpanel/hcontrol/UcPictureAdd.ascx" TagName="PicAdd" TagPrefix="HtUc" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolderMain" runat="server">
    <HtUc:PicAdd runat="server" ID="picAdd1" HtIsRecommend="true" />
</asp:Content>
提供源码下载:
http://hovertree.com/h/bjaf/hv6cqe5n.htm

已经有人对ASP.NET用户控件的利弊做了小结
优点:
1.用户控件感觉就是迷你版的页面,用它可以对一些常用的功能和页面布局进行封装,实现一定的代码重用;2.用户控件的编写比编写自定义控件要简单得多,事件处理模型,生命周期等和一般页面相似,容易上手;
缺点:
1.用户控件其实很多时候嵌入了应用程序的一些逻辑,跨应用程序的重用性稍差;
2.如果出现bug,有时不太容易发现;
3.性能可能不是很好

ASP.NET Web 用户控件与完整的 ASP.NET 网页(.aspx 文件)相似,同时具有用户界面页和代码。可以采取与创建 ASP.NET 页相似的方式创建用户控件,然后向其中添加所需的标记和子控件。用户控件可以像页面一样包含对其内容进行操作(包括执行数据绑定等任务)的代码。

用户控件与 ASP.NET 网页有以下区别:

用户控件的文件扩展名为 .ascx。

用户控件中没有 @ Page 指令,而是包含 @ Control 指令,该指令对配置及其他属性进行定义。

用户控件不能作为独立文件运行。而必须像处理任何控件一样,将它们添加到 ASP.NET 页中。

用户控件中没有 html、body 或 form 元素。这些元素必须位于宿主页中。

可以在用户控件上使用与在 ASP.NET 网页上所用相同的 HTML 元素(html、body 或 form 元素除外)和 Web 控件。例如,如果您要创建一个将用作工具栏的用户控件,则可以将一系列 Button Web 服务器控件放在该控件上,并创建这些按钮的事件处理程序。

HoverTreeTop:http://hovertree.com/top/