ASP.NET控件开发 - 概念和HelloWorld控件

今天我们来看一下如何开发自己的ASP.NET控件。
要开发ASP.NET控件首先必须知道一些控件开发的常用基类。
如下:
1)Control
 
这是所有控件的基类,所有控件都直接我间接继承它。

2)WebControl
 
用于开发简单控件,它和Control的区别就是:
      WebControl不但继承了Control的所有属性,还增加
      了布局,可访问性,外观样式等特性。
   (我们等下的HellowWorld控件就要继承它)

3)CompositeControl
 
用于开发组合控件,把现有控件组合起来。

4  DataBoundControl
  开发数据绑定控件。(例如:GridView, DropDownList)

5) HierarchicalDataBoundControl
 
开发具有层次级别的数据绑定控件。(例如:Menu, TreeView)

6) HierarchicalDataSourceControl
  作为HierarchicalDataBoundControl的数据源控件。

7)ListControl
 
开发列表类型控件。(例如:DropDownList, ListBox)

8)  BaseValidator
 
开发验证控件。

下面我们就来看一下开发一个简单的HellowWorld控件的基本步骤。

首先,我们需要新建一个控件项目,我们以后的控件都会在这个项目里。
参考下图:

然后,需要给我们的Web项目添加对我们控件项目的引用,参考下图:

接着,我们可以创建一个HelloWorld控件了,需要新建一个cs文件,如下:

下面是 HelloWorld控件的源代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace BlogControl
{
    [ToolboxData("<{0}:HelloWorld runat=server></{0}:HelloWorld>")]
    public class HelloWord : WebControl
    {
        protected override void Render(HtmlTextWriter writer)
        {
            writer.Write("Hello David,this is your first ASP.NET control application!");
        }
    }
}

然后,在客户端的aspx页面里我们为了使用控件,必须注册它,如下语句:
<%@ Register Assembly="BlogControl" Namespace="BlogControl" TagPrefix="cc1" %>

完整代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="HelloWorld.aspx.cs" Inherits="BlogNet.AspNetControl.HelloWorld" %>

<%@ Register Assembly="BlogControl" Namespace="BlogControl" TagPrefix="cc1" %>

<!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>HelloWord控件</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <cc1:HelloWord ID="HelloWord1" runat="server"/>
    </div>
    </form>
</body>
</html>

输出结果:
Hello David,this is your first ASP.NET control application!

时间: 2024-10-10 09:58:58

ASP.NET控件开发 - 概念和HelloWorld控件的相关文章

WinForm控件开发总结(十一) 调试控件的设计时行为

前面的一些文章绝大部分都是要讲控件的设计时的行为,既然涉及到这么多的设计时行为的代码编写 ,那么就有必要就一下如何来调试控件的设计行为. 调试控件的设计时行为和调试DLL的方式非常的相似,因为DLL是不能够单独运行的,而一般的控件也 会在一个DLL里.当然如果你不考虑类的可复用性而把控件写在一个Windows Application里面也无可厚非 ,这样调试倒也变的简单了.但是我们还是要考虑更通常的情况.一般来说,我们调试DLL时,都是创建 一个可独立运行的应用程序,在这个应用程序里引用你希望调

WinForm控件开发总结(五) 为控件的复杂属性提供类型转换器

上一篇文章我已经介绍了TypeConverterAttribute元数据的作用,本文将通过代码向你展示具体的实 现.在这个例子中,我要给控件添加一个复杂的属性,这个属性对这个控件没有什么功用,纯粹是为了演 示,有些牵强附会了. 现在在前一篇文章中的创建的控件代码中添加一个Scope属性: [Browsable(true)] public Scope Scope { get { return _scope; } set { _scope = value; } } 这个属性的类型是Scope类,代码

百万悬赏CrossApp控件开发:3个控件已审核通过

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 由OSchina和9秒社团开源基金会正式发起"C++rossApp控件悬赏开发活动"首报佳讯! 快速提交的3个控件 在CrossApp 0.1.5版本更新发布之际,外部开发者便提交上来了CASwitch和CASlider控件,并被审核通过,另外6月4日晚上又新pull request了一个新的控件CASegmentedCo

WinForm控件开发总结(五)-----为控件的复杂属性提供类型转换器

上一篇文章我已经介绍了TypeConverterAttribute元数据的作用,本文将通过代码向你展示具体的实现.在这个例子中,我要给控件添加一个复杂的属性,这个属性对这个控件没有什么功用,纯粹是为了演示,有些牵强附会了.       现在在前一篇文章中的创建的控件代码中添加一个Scope属性: [Browsable(true)]         public Scope Scope         {             get             {                 

WinForm控件开发总结系列文章目录

WinForm控件开发总结(十二) 让控件处理导航键 WinForm控件开发总结(十一) 调试控件的设计时行为 WinForm控件开发总结(十) 为属性设置默认值 WinForm控件开发总结(九) 为属性提下拉式属性编辑器 WinForm控件开发总结(七) 为复杂属性的子属性提供编辑功能 WinForm控件开发总结(八) 为属性提供弹出式编辑对话框 WinForm控件开发总结(六) 控件属性类型转换器代码详解 WinForm控件开发总结(五) 为控件的复杂属性提供类型转换器 WinForm控件开

注册-mfc activex控件开发问题

问题描述 mfc activex控件开发问题 mfc activex控件(封装另外一个dll文件中的接口)中的方法在vs2008中经过编译注册后通过js调用有效,而单独进行注册则提示"对象不支持此属性或方法",这是什么原因啊?各位大神!!! 解决方案 里面的方法有问题看看参数Hi t对不 解决方案二: regsvr32方式注册的吗,是否用admin权限

开发ASP.NET Atlas服务器端Extender控件—基本概念以及预先需求

asp.net|服务器|概念|控件 Microsoft ASP.NET Atlas的出现几乎颠覆了整个传统的ASP.NET开发概念,理论上讲,最"纯粹"的Atlas应用程序将把一切表现层全部移到客户端进行,服务器端仅仅是提供客户端需要的服务.而目前为止这种客户端编程模型还没有很强大的IDE支持(想想编写,调试JavaScript的时候是多么的痛苦--),同时考虑到还存在着好多现有的ASP.NET程序,并且开发人员还需要一定的适应/学习时间.这样Atlas在提供纯粹的客户端面向编程模型的

详细阐述利用ASP.NET 2.0创建自定义Web控件开发说明

asp.net|web|创建|控件|控件开发 简介 从使用基本的文本编辑器到创作标记页面,Web 开发已经经历了一个漫长的过程.目前,集成开发环境 (IDE) 为开发过程中的几乎每个方面都提供了图形化表示形式.此外,还实现各种说明性编程技术以提高效率并降低出现错误的几率.Visual Studio 2005 和 ASP.NET 2.0 中的控件体系结构遵循了这些编程趋势,并且提供了可靠的.可扩展的环境,该环境设计为使开发人员可以创建能够以说明方式配置的控件. 此外,ASP.NET 中新的自适应呈

ASP.NET控件开发基础(7)

上一篇写了控件样式的一些基础的东西,接着我们继续讨论asp.net控件开发的一些东西. 这次我们要讨论的是复合控件.本文无法一步到位完整介绍,因为讨论的篇幅比较大,所以分两次写,这次就先讲些基本概念吧,剩着的下次写. 好象复合控件网上已经有很多教程了,相信大家也看过很多.如果看过的朋友就当我再废话一便,没看过的朋友希望能给你带来帮助. 1.复合控件概念 复合控件跟用户控件有很多相似点,最大不同就是用户控件后缀为ascx,而复合控件编译后则为dll文件,还可以分发给大家使用,另外其他不同点还请参考