自定义个性化的web复合控件

.net 为大家提供了各种各样的控件,也足够的丰富多彩。但是有时候你是不是想开发一些自己的控件以提高开发效率,或者实现一些特殊的功能呢。

下面我讲述一下,建立一个最基本的 web 复合控件的过程。

首先新建一个 C# 类库项目,取名叫 MyControl 吧。删除默认的类文件 class1 ,然后建立我们自己的类文件 MyControl.cs 。

现在我们向其中添加密码。

在刚生成的代码上先把它修改成这样子

我们将使用以下引用:

using System;

using System.IO;

using System.Drawing;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.ComponentModel;

保证我们的 MyContro 是从 WebControl 继承的。

public class MyControl:WebControl

下面我们将重写下面两个函数,这都是必须的

protected override void Render(HtmlTextWriter writer)

protected override void CreateChildControls()

修改第一个函数为下面代码

protected override void Render(HtmlTextWriter writer)

{

this .CreateChildControls();

base .Render (writer);

}

修改第二个函数为下面代码

protected override void CreateChildControls()

{

// 清除现有的子控件及其 ViewState

this .Controls.Clear();

this .ClearChildViewState();

// 生成控件树

// 生成环境表格(一行,两个单元格)

Table myTable = new Table();

//build the table row 生成表格中的行

TableRow row = new TableRow();

myTable.Rows.Add(row);

// 生成单元格

TableCell myCell = new TableCell();

// 用来生成链接按钮导航条的代码。每个按钮都显示有一个 Webdings 字符,可以根据需 // 禁用,并被绑定到内部的 Click 事件处理程序。

LinkButton myLinkButton = new LinkButton();

myLinkButton.ID = "MyLinkButton";

myLinkButton.Click += new EventHandler(myLinkButton_Click);

myLinkButton.Font.Name = " 宋体 ";

myLinkButton.ToolTip = " 好玄啊! ";

myLinkButton.Text = " 请点我 ";

myCell.Controls.Add(myLinkButton);

row.Cells.Add(myCell);

Controls.Add(t);

}

下面写你自己的事件的方法吧

private void myLinkButton_Click( object sender,System.EventArgs e)

{

Page.Response.Write(" 想干点什么就写点什么吧 , 就这么简单 !");

}

下面编译一下吧,然后点工具 — 》添加 / 移除工具箱项

然后浏览到你编译生成的 dll ,现在在工具箱里你看到了什么?

把 myControl 拖到你自己的 webForm 上看看效果吧。

OK ,就这么简单。

好了,时间不多就先写到这里吧。

我们以后将继续讨论这个自定义控件的扩展。不过聪明的你也应该能扩展出很多功能来了吧。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus