您的位置:首页 > 编程语言 > ASP

asp.net控件开发基础(1)

2009-03-11 10:31 344 查看
asp.net本身提供了很多控件,提供给我们这些比较懒惰的人使用,我认为控件的作用就在此,因为我们不想重复工作,所以要创建它,这个本身便是一个需求的关系,所以学习控件开发很有意思.

wrox网站上有本书 Professional ASP.NET 2.0 Server Control and Component Development

现在还没有出版,但网站上放出了代码,所以正好下载过来学习一下.

我看过前几章代码,环环相扣,作者用不同的知识向我们展示同一个效果,所以循序渐进的学下来很有好处.

虽然自己对控件开发还不是很熟悉,但我感觉以下几点很重要,是我自己总结的

1.了解控件之间的继承关系

最好是先看看看System.Web.UI命名空间

(1)Control 类,所有的控件都共享的一个类,你需要去看下其里面受保护的几个方法和属性,虽然一下看不完,以后会发现常常用到这些方法

大家可以在MSDN看一下其派生类

(2)HtmlTextWriter 类

不得不了解的一个类,主要工作就是我们写的标记字符和文本输出

2.重写方法

(1) 必须继承Control类

(2) 重写Control类的Render方法,这个是必须的,因为其他控件都继承了Control 类类,所以几乎所有控件都有这个方法

3.熟悉元数据

大家都知道asp.net控件属性在编辑器上是分类的,如外观,行为,布局等,每个属性还给出了解释

简单的元数据就是起到这个作用,当然你也可以不加,但使用了元数据让人感到有亲切感,写法如



[CategoryAttribute("Appearance")]

要使用元数据,必须引用System.ComponentModel命名控件,一般你如果写组件的话,不可能不用到这样类库。具体的MSDN上有所介绍。

一.输出字符串

说多了没意思,还是来演练吧。首先你得了解HTML。来看下面代码,效果就是输出HTML到客户端

示例一

using System;

using System.Web.UI;

namespace CustomComponents

效果很简单,其实就一直在输出HTML再加几个属性,大家可以直接把代码放在App_Code文件夹里,就可自动编译,当然也可以创建web控件库.

注意要继承Control类,重写Render方法,用HtmlTextWriter类的Write输出HTML

使用控件

(1).需要先注册一下

<%@ Register TagPrefix="custom" Namespace="CustomComponents" %>

(2) 然后就使用标签输出效果

<custom:CreditCardForm1 runat="server" ID="ccf" />

下为效果图

using System;

using System.Web.UI;

using System.ComponentModel;

namespace CustomComponents

上面我们接触到了元数据了,意思应该很好理解,为了测试元数据的作用,大家可以新建一个类库项目,然后把写的代码放这个项目里面,接着web网站引用这个项目,成功生成以后,你会发现工具箱已经自动帮你加上了这几个控件

protected override void Render(HtmlTextWriter writer)

实现的效果虽然一样,但上面的代码是不是漂亮很多,而且不容易输错.这也是所提倡的做法

四.未使用视图状态的后果

还是视图状态,关于视图状态大家可以参考MSDN和相关文章

看以下的示例,还是CreditCardForm3这个控件

if (!IsPostBack)

public override string PaymentMethodText

public override string CreditCardNoText

public override string CardholderNameText

public override string ExpirationDateText

public override string SubmitButtonText

以上全为个人见解,如有错误,希望大家指出.

点击下载代码

TrackBack:/article/4625073.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: