控件开发之入门系列(1):建立一个简单控件
这个入门系列我会说一些怎样在ASP.NET 框架中开发自定义控件,我把这个主题分为两部分来说,一是开发自定义控件,另一个是高级控件开发。在第一部分中,我谈论了控件开发的一些基本主题,在下一部分,我主要是说一些高级主题,如模板、数据绑定。
本文为系列第一篇,从一个简单的控件开始,我也“Hello World!”一把,开始构建一个显示“Hello World!”的控件。
建立一个简单控件
我们将从一个简单的控件HelloWord开始,这个控件在页面中显示“Hello Word!”。
代码如下:
上面是继承于Control类的HelloWorld控件类的c#代码。
继承于Control类,实际是System.Web.UI.Control类,这主要是你可以充分利用作为基类的Control类的所有属性、方法和事件。
在上面的代码中,重载了Control类的Render方法,当ASP.NET页面呈现内容时,会调用页面中的所有控件的Render方法,所以当页面自身呈现时,在Render方法中所要输出的内容将会生成,显示在页面html代码中。
Render 方法拥有一个输入参数,就是HtmlTextWriter类的实例,通过调用HtmlTextWriter类的Write()方法,可以生成内容,在HelloWord类中,Write()方法显示“Hello World!”文本。
在HelloWord类中,导入了三个命名控件,System,System.Web,Syetem.Web.UI,通常,当构建一个自定义控件一直导入这三个命名空间是一个好的建议,这些命名空间包括开发控件的基类,譬如Control和WebControl。
最后为HelloWorld这个类建立了一个MyControls的命名空间,你可以完全按照你的意愿去建立,在ASP.NET页面中实例化控件时你只需要去引用这个命名空间就可以了(注意,在编程中良好的习惯非常重要,c#编程参考中建议命名控件采用Pascal命名方法,并由公司名+组织名+项目名方式编写)。
在VS里以类库方式生成为MyControls.dll,然后复制到ASP.NET Application的bin目录中,下面代码为在WebTest项目里ASP.NET页面中使用HelloWorld控件。
好的,HelloWorld控件就写到这了,是不是感觉非常简单,到现在是不是非常自信了?那就跳往后面的主题吧!