第一章: 从一个简单的控件谈起
系列文章链接:
ASP.NET 自定义控件组件开发 第一章 待续
ASP.NET 自定义控件组件开发 第一章 第二篇 接着待续
ASP.NET 自定义控件组件开发 第一章 第三篇
ASP.NET 自定义控件组件开发 第二章 继承 webControl 的自定义控件
ASP.NET 自定义控件组件开发 第三章 为控件添加事件 前篇
ASP.NET 自定义控件组件开发 第三章 为控件添加事件 后篇
ASP.NET 自定义控件组件开发 第四章 组合控件开发 CompositeControl
ASP.NET 自定义控件组件开发 第四章 组合控件开发 CompositeControl 后篇 -- 事件冒泡
ASP.NET 自定义控件组件开发 第五章 模板控件开发
ASP.NET2.0 自定义控件组件开发 第六章 深入讲解控件的属性
ASP.NET2.0 组件控件开发视频 初体验
起始开发 ASP.NET 自定义控件不是那么的高深, 当初我开始学的时候还有点恐惧, 但是慢慢就好了. 学习控件的开发技术, 并不一定说以后要从事控件的开发, 而是让我们深入的理解掌握 ASP.NET 内部的机理. 你会发觉, 当 学习完控件开发技术后, 你以后开发网站时有种得心应手的感觉. 我不希望一上来就讲控件开始多么多么难啊, 我会用一个演化的方法来讲述控件开发, 一步一步帮助大家理解, 如果大家要求的话, 我会考虑录制视频讲解. 当然, 也很希望去 webcast 上讲讲这个系列.
代码也会附带的放上, 希望大家支持!!!
现在开始: 首先看一个简单的页面:
下面是个 html 的页面, 显示的是一些 HTML 控件的页面.
当我们查看页面后面的 HTML 代码时, 就发现很复杂
上面显示的是一个输入用户信息的提交控件, 如果这个控件很常用, 那么我们每次都要这样拖放, 那是很累的, 为了便于代码重用, 就吧它实现为一个控件.
一般来说, 自定义控件的都是继承于某一个基类的, 不仅如此, 我们所用的所有的控件都是继承于一个基类 Control 类. 我们开发控件可以继承任何的服务器控件, 如 Button ,TextBox 等等. 但是我们一般都继承于三个基类 Control,WebControl,CompositeControl, 因为这些类给了我们更加灵活的操作.
本章从浅入深, 主要讲解继承 Control 类.
开发继承于 Control 类的控件很简单, 只要重写 Render 方法就可以了:
其实我们做的事情很简单: 只是把之前的 HTML 的代码做为字符串传入了 write.Write() 方法中而已.
当把所有的这些 HTML 代码写完之后, 恭喜你, 一个自定义的服务器控件就成功了! 让后你就可以把它放 放入工具箱中, 像其他的控件, 如 Button,TextBox, 等一样的使用了.
下面来一步步的介绍得到一个控件:
1. 写完之前的代码后, 然后生成:
这样, 一个控件就生成了.
2. 我们新建一个测试的网站的
3. 在工具箱中点击右键 -"选择项", 弹出如下:
4. 点击 "浏览", 然后找到我们存放项目的地方
5. 然后就进入 "CreditCardForm"-"obj-"Debug"
你会看到一个. dll
6. 然后选中那个. dll 就可以, 然后添加
7. 然后就可以在工具箱中找到你的控件
然后拖过来就可以使用了
好了, 经过上面的步骤, 你就已经开发了一个控件, 很简单吧! 以后你只要添加了这个控件的. dll, 你就可以在任何程序和项目中使用他, 但是这个控件只是个演示, 离实用来有距离, 不用怕, 慢慢来.
今天先写到这里.
大家给点建议吧!
您的支持就是我最大的动力!
小洋
项目的完整代码已经写完了 但是不知道怎样放上来 要代码的就说下
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- namespace CreditCardForm
- {
- public class CreditCardForm1:Control
- {
- protected override void Render(HtmlTextWriter writer)
- {
- writer.Write (""
- );
- writer.Write ("");
- writer.Write ("支付方式");
- writer.Write ("");
- writer.Write (");
- writer.Write ("");
- writer.Write ("");
- writer.Write ("");
- writer.Write ("");
- writer.Write("");
- writer.Write("");
- writer.Write("信用卡号");
- writer.Write("");
- writer.Write("");
- writer.Write("");
- writer.Write("持卡人");
- writer.Write("");
- writer.Write("");
- writer.Write("");
- writer.Write("过期时间");
- writer.Write("");
- writer.Write(");
- for (int month = 1; month <13; month++)
- {
- writer.Write("+ month.ToString() +">"+ month.ToString() +"");
- }
- writer.Write("");
- writer.Write(" ");
- writer.Write(");
- for (int year = 2008; year<2014; year ++)
- {
- writer.Write("+ year.ToString() +">"+ year.ToString() +"");
- }
- writer.Write("");
- writer.Write("");
- writer.Write("");
- writer.Write("");
- writer.Write("");
- writer.Write("");
- }
- }
- }
来源: http://www.bubuko.com/infodetail-3118339.html