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

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,就这么简单。

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

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

时间: 2024-10-22 20:57:56

自定义个性化的web复合控件的相关文章

java微信开发API第四步 微信自定义个性化菜单实现_java

微信如何实现自定义个性化菜单,下面为大家介绍 一.全局说明 详细说明请参考前两篇文章. 二.本文说明 本文分为五部分:     * 工具类AccessTokenUtils的封装     * 自定义菜单和个性化菜单文档的阅读解析     * 菜单JSON的分析以及构建对应bean     * 自定义菜单的实现     * 个性化菜单的实现 微信自定义菜单所有类型菜单都给出演示 本文结束会给出包括本文前四篇文章的所有演示源码 工具类AccessTokenUtils的封装在上文中关于AccessTok

jfinal下超爽的freemarker自定义标签,web开发的利器,这分页怎么实现。

问题描述 jfinal下超爽的freemarker自定义标签,web开发的利器,这分页怎么实现. http://my.oschina.net/yongtree/blog/92309?p=2#commentsjfinal下超爽的freemarker自定义标签,web开发的利器,这分页怎么实现. 解决方案 前端自定义啦,后端jfinal就是pagepermate实现

JS自定义函数对web前端上传的文件进行类型大小判断_javascript技巧

废话不多说了直接给大家贴js代码了.具体代码如下所示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <me

Android自定义个性化的Dialog示例

本文实例讲述了Android自定义个性化的Dialog.分享给大家供大家参考,具体如下: Dialog: mDialog = new Dialog(this, R.style.chooseUserDialogTheme); mDialog.setTitle(R.string.choose_user); View rootView = LayoutInflater.from(this).inflate( R.layout.view_simple_choose_user, null); mDialo

自定义用于ASP Web站点的SQL 7.0数据库(2)

web|数据|数据库|站点 分配表的用户许可 现在,我们来创建数据库的表.操作是:在WEBPAGES 数据库节点上单击,从Action(动作)菜单项中选择New Table(建新表),完成建新表对话框.在保存表之前至少要加入一个字段,不过,在建表之前,最好还是有个用于Web数据的完整数据库设计. 对示例数据库,我们建立了一个名为WEBDATA的表.为了给每个用户分配权限,要在刚创建的表上按右键,在快捷菜单上选择属性菜单项.从表属性对话中,单击Permission(权限许可),调出对象属性对话框.

自定义用于ASP Web站点的SQL 7.0数据库(1)

web|数据|数据库|站点 将演示如何使用SQL 7.0服务器的Enterprise Manager创建.配置一个示例数据库.我们还会演示如何增加具有合适权限的用户,以便可以从Web服务器上访问数据. 要做的第一件事是创建一个新的SQL数据库.操作是:从SQL Server 7.0菜单中启动Enterprise Manager,展开SQL服务器组节点,展开要增加数据库的指定SQL服务器,单击数据库图标,然后从Action(动作)菜单项中选择New Database (新建数据库). 从Actio

自定义用于ASP Web站点的 SQL 7.0 数据库(2)

web|数据|数据库|站点 分配表的用户许可 现在,我们来创建数据库的表.操作是:在WEBPAGES 数据库节点上单击,从Action(动作)菜单项中选择New Table(建新表),完成建新表对话框.在保存表之前至少要加入一个字段,不过,在建表之前,最好还是有个用于Web数据的完整数据库设计. 对示例数据库,我们建立了一个名为WEBDATA的表.为了给每个用户分配权限,要在刚创建的表上按右键,在快捷菜单上选择属性菜单项.从表属性对话中,单击Permission(权限许可),调出对象属性对话框.

自定义用于ASP Web站点的 SQL 7.0 数据库(1)

web|数据|数据库|站点 将演示如何使用SQL 7.0服务器的Enterprise Manager创建.配置一个示例数据库.我们还会演示如何增加具有合适权限的用户,以便可以从Web服务器上访问数据. 要做的第一件事是创建一个新的SQL数据库.操作是:从SQL Server 7.0菜单中启动Enterprise Manager,展开SQL服务器组节点,展开要增加数据库的指定SQL服务器,单击数据库图标,然后从Action(动作)菜单项中选择New Database (新建数据库). 从Actio

启用和自定义 ASP.NET Web API 服务的安全性

对于最常见的场景 - Web 页面中的 JavaScript 访问同一站点上的 Web API 服务,讨论 ASP.NET Web API 的安全性几乎是多余的.如果对用户执行身份验证和授权对 Web 窗体/视图(包含使用服务的 JavaScript)的访问均已设置,则服务可能已具备其所需的所有安全性了.这要归因于 ASP.NET,它会将其用 于验证页面请求的 Cookie 和身份验证信息作为对服务方法的任意客户端 JavaScript 请求的一部分进行发送 .但有一个非常重要的例外: ASP.