ASP.NET自定义控件

起始开发ASP.NET自定义控件不是那么的高深,当初我开始学的时候还有点恐惧,但是慢慢就好了。学习控件的开发技术,并不一定说以后要从事控件的开发,而是让我们深入的理解掌握ASP.NET内部的机理。你会发觉,当 学习完控件开发技术后,你以后开发网站时有种得心应手的感觉。我不希望一上来就讲控件开始多么多么难啊,我会用一个演化的方法来讲述控件开发,一步一步帮助大家理解,如果大家要求的话,我会考虑录制视频讲解。当然,也很希望去webcast上讲讲这个系列。

    代码也会附带的放上,希望大家支持!!!

    现在开始:首先看一个简单的页面:

    下面是个html的页面,显示的是一些html控件的页面。

   

ASP.NET自定义控件_第1张图片

       当我们查看页面后面的html代码时,就发现很复杂

      

ASP.NET自定义控件_第2张图片

上面显示的是一个输入用户信息的提交控件,如果这个控件很常用,那么我们每次都要这样拖放,那是很累的,为了便于代码重用,就吧它实现为一个控件。

一般来说,自定义控件的都是继承于某一个基类的,不仅如此,我们所用的所有的控件都是继承于一个基类Control类。我们开发控件可以继承任何的服务器控件,如Button ,TextBox等等。但是我们一般都继承于三个基类Control,WebControl,CompositeControl,因为这些类给了我们更加灵活的操作。

本章从浅入深,主要讲解继承Control类。

 

       开发继承于Control类的控件很简单,只要重写Render方法就可以了:

                     

ASP.NET自定义控件_第3张图片

                其实我们做的事情很简单:只是把之前的html的代码做为字符串传入了write.Write()方法中而已。

                当把所有的这些html代码写完之后,恭喜你,一个自定义的服务器控件就成功了!让后你就可以把它放       放入工具箱中,像其他的控件,如Button,TextBox,等一样的使用了。

               下面来一步步的介绍得到一个控件:

1.      写完之前的代码后,然后生成:

     

 

ASP.NET自定义控件_第4张图片

这样,一个控件就生成了。

2.      我们新建一个测试的网站的

ASP.NET自定义控件_第5张图片

 

 

 

     

 

3.      在工具箱中点击右键-“选择项“,弹出如下:

 

 

 

ASP.NET自定义控件_第6张图片       

4.      点击“浏览“,然后找到我们存放项目的地方

ASP.NET自定义控件_第7张图片

 

 

 

 

 

5.      然后就进入”CreditCardForm”—“obj—“Debug”

你会看到一个.dll

 

 

 

 

ASP.NET自定义控件_第8张图片

6.      然后选中那个.dll就可以,然后添加

 

 

7.      然后就可以在工具箱中找到你的控件

 

ASP.NET自定义控件_第9张图片

 

 

     

 

然后拖过来就可以使用了

好了,经过上面的步骤,你就已经开发了一个控件,很简单吧!以后你只要添加了这个控件的.dll,你就可以在任何程序和项目中使用他,但是这个控件只是个演示,离实用来有距离,不用怕,慢慢来。

       今天先写到这里。

       大家给点建议吧!

      

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

                                                        小洋

 

 

 

 

 

 

 

 

 

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


 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 
10 namespace CreditCardForm
11 {
12     public class CreditCardForm1:Control 
13     {
14         protected override void Render(HtmlTextWriter writer)
15         {
16             writer.Write ("");
17             writer.Write ("");
18             writer.Write ("支付方式");
19             writer.Write ("");
20             writer.Write ("");
21             writer.Write ("Master");
22             writer.Write ("Visa");
23             writer.Write ("");
24             writer.Write ("");
25             writer.Write("");
26 
27             writer.Write("");
28             writer.Write("信用卡号");
29             writer.Write("");
30             writer.Write("");
31 
32             writer.Write("");
33             writer.Write("持卡人");
34             writer.Write("");
35             writer.Write("");
36 
37             writer.Write("");
38             writer.Write("过期时间");
39             writer.Write("");
40             writer.Write("");
41             for (int month = 1; month < 13; month++)
42             {
43                 writer.Write("" + month.ToString() + "");
44             }
45 
46             writer.Write("");
47 
48             writer.Write(" ");
49 
50             writer.Write("");
51             for (int year = 2008; year< 2014; year ++)
52             {
53                 writer.Write("" + year.ToString() + "");
54             }
55             writer.Write("");
56             writer.Write("");
57 
58             writer.Write("");
59             writer.Write("");
60             writer.Write("");
61             writer.Write("");
62 
63  
64 
65 
66         }
67 
68     }
69 }
70 
71 

转载:http://www.cnblogs.com/yanyangtian/archive/2008/08/06/1262109.html

你可能感兴趣的:(.net)