原文:ASP.NET自定义控件组件开发 第一章 待续

第一章:从一个简单的控件谈起

系列文章链接:

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,你就可以在任何程序和项目中使用他,但是这个控件只是个演示,离实用来有距离,不用怕,慢慢来。

今天先写到这里。

大家给点建议吧!

您的支持就是我最大的动力!

小洋

项目的完整代码已经写完了 但是不知道怎样放上来  要代码的就说下

Code
 1 
 2 
 3 using System;
 4 using System.Collections.Generic;
 5 using System.Text;
 6 using System.Web;
 7 using System.Web.UI;
 8 using System.Web.UI.WebControls;
 9 
 namespace CreditCardForm
 {
     public class CreditCardForm1:Control 
     {
         protected override void Render(HtmlTextWriter writer)
         {
             writer.Write ("<table style='width:287px;height:128px;border-width:0'>");
             writer.Write ("<tr>");
             writer.Write ("<td>支付方式</td>");
             writer.Write ("<td>");
             writer.Write ("<select name='paymentMethod' id='paymentMethod' style='width:100%'>");
             writer.Write ("<option value='0'>Master</option>");
             writer.Write ("<option value='1'>Visa</option>");
             writer.Write ("</select>");
             writer.Write ("</td>");
             writer.Write("</tr>");
 
             writer.Write("<tr>");
             writer.Write("<td>信用卡号</td>");
             writer.Write("<td><input type='text' name='CreditCardNo' id='CreditCardNo'/></td>");
             writer.Write("</tr>");
 
             writer.Write("<tr>");
             writer.Write("<td>持卡人</td>");
             writer.Write("<td><input type='text' name='CardholderName' id='CardholderName' /></td>");
             writer.Write("</tr>");
 
             writer.Write("<tr>");
             writer.Write("<td>过期时间</td>");
             writer.Write("<td>");
             writer.Write("<select name='Month' id='Month'>");
             for (int month = ; month < ; month++)
             {
                 writer.Write("<option value=" + month.ToString() + ">" + month.ToString() + "</option>");
             }
 
             writer.Write("</select>");
 
             writer.Write("&nbsp");
 
             writer.Write("<select name='Year' id='Year'>");
             for (int year = ; year< ; year ++)
             {
                 writer.Write("<option value=" + year.ToString() + ">" + year.ToString() + "</option>");
             }
             writer.Write("</select>");
             writer.Write("</td></tr>");
 
             writer.Write("<tr>");
             writer.Write("<td align='center' colspan='2'>");
             writer.Write("<input type='submit' value='提交'/>");
             writer.Write("</td></tr>");
 
  
 
 
         }
 
     }
 }
 
 
 

ASP.NET自定义控件组件开发 第一章 待续的更多相关文章

  1. ASP.NET自定义控件组件开发 第一章 第二篇 接着待续

    原文:ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了 ...

  2. ASP.NET自定义控件组件开发 第一章 第三篇

    原文:ASP.NET自定义控件组件开发 第一章 第三篇 第三篇:第一章的完结篇 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待 ...

  3. ASP.NET自定义控件组件开发 第一章 第三篇 第一章的完结篇

    ASP.NET自定义控件组件开发 第一章 第三篇   第三篇:第一章的完结篇 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ...

  4. ASP.NET自定义控件组件开发 第一章 第一章:从一个简单的控件谈起

    第一章:从一个简单的控件谈起 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第三 ...

  5. ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件

    原文:ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件 第二章 继承于WebControl的自定义控件 到现在为止,我已经写了三篇关于自定义控件开发的文章,很感谢大家的支 ...

  6. ASP.NET自定义控件组件开发 第五章 模板控件开发

    原文:ASP.NET自定义控件组件开发 第五章 模板控件开发 第五章 模板控件开发 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接 ...

  7. ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl

    原文:ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 第四章 组合控件开发CompositeControl 大家好,今天我们来实现一个自定义的控件,之前我们已经 ...

  8. ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 后篇 --事件冒泡

    原文:ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 后篇 --事件冒泡 CompositeControl  后篇 --事件冒泡 系列文章链接: ASP.NET ...

  9. ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇

    原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇 第三章 为控件添加事件 好了,我们之前以前开发一个控件.而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件. 系列 ...

随机推荐

  1. 乞讨N!到底有多少0

    分析: 对N质因数分解 N=2^x * 3^y * 5^z....因为10 = 2*5,所以末尾0的个数仅仅和x与z有关,每一对2和5相乘能够得到一个10.于是末尾0的个数=min(x,z).在实际中 ...

  2. QT怎样在QTableWidge显示图片

      <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">QTableWi ...

  3. 关于WHERE后面不能放聚合函数(如SUM(...))的解决办法

    我们在编写SQL语句的时候,常常会遇到需要将SUM()放到WHERE后面作为条件查询,事实证明这样是无法执行的,执行会报异常:聚合不应出现在 WHERE 子句中. 那么如何解决呢,使用HAVING关键 ...

  4. hadoop在实现kmeans算法——一个mapreduce实施

    写mapreduce程序实现kmeans算法.我们的想法可能是 1. 次迭代后的质心 2. map里.计算每一个质心与样本之间的距离,得到与样本距离最短的质心,以这个质心作为key,样本作为value ...

  5. Codeforces Round #253 (Div. 1) (A, B, C)

    Codeforces Round #253 (Div. 1) 题目链接 A:给定一些牌,然后如今要提示一些牌的信息,要求提示最少,使得全部牌能够被分辨出来. 思路:一共2^10种情况,直接暴力枚举,然 ...

  6. css 背景色渐变

    background:rgba(0, 0, 0, 0) linear-gradient(to bottom, #eff5ff 0px, #e0ecff 20%) repeat-x scroll 0 0 ...

  7. 《Javascript高级程序设计》读书笔记之bind函数详解

    为什么需要bind var name = "The Window"; var object = { name: "My Object", getNameFunc ...

  8. MyEclipse中“擅自乱改”项目名导致项目报错的处理

    最近几天培训的过程中,经常有同学手一抖,默默的修改了本来配置部署好的项目名,导致项目报错…… 遇到这种事情,我一般会做的处理就是重新新建项目,然后把包和各种文件ctrl+c ctrl+v,遇到项目小还 ...

  9. QTP小应用一则

    昨天收到一个任务,将270多个视频文件按照统一的编码要求,转换为其他格式,而且给的转换器居然不能批量转换! 在痛苦地转换了30多个之后,我才想起来使用QTP的数据驱动测试方法可以解决这个问题! 于是我 ...

  10. Java EE (6) -- Java EE 5 Enterprise Architect Certified Master

    Section 1: Application Design Concepts and Principles Explain the main advantages of an object-orien ...