创建ASP.NET WEB自定义控件——例程1

** 创建 ASP.NET WEB ** ** 自定义控件——例程 1 **

** 作者:大毛 http://damao.0538.org **

WEB 自定义控件编程是 ASP.NET 编程里面比较难的一部分,尤其是复杂的控件需要用到平常不常用的一些技术技巧。

下面根据一些我自己的实践经验,向读者介绍一下这方面的技术。

简单的继承控件: ConfirmButton

我们在用 ASP.NET 编写应用程序的时候,经常需要在按钮提交的时候弹出一个 [OK][Cancel] 的确认框,以防止用户在操作的时候误提交。实现这个功能传统的方法是在代码页的 Page_Load 事件里添加按钮的 Attributes ,但是每个按钮都要添加一遍比较麻烦。下面我们来自己制作一个有这样功能的按钮解决这个问题。

(例程采用 C# 语言)

1 .新建项目

首先打开 Visual Studio.net ,建立一个新的 Web 控件库项目,取名 TestLib 。在解决方案资源管理器里会有一个标识为 WebCustomControl1.cs 的源代码文件,将其改名为 ConfirmButton.cs 。

2 .编辑代码

打开 ConfirmButton.cs 源文件,将类名“ WebCustomControl1 ”改为“ ConfirmButton ”;将类继承自“ System.Web.UI.WebControls.WebControl ”改为“ System.Web.UI.WebControls.Button ”;

将代码“ [DefaultProperty("Text"),

ToolboxData("<{0}:WebCustomControl1 runat=server>

")] ”

改为“ [DefaultProperty("Text"),

ToolboxData("<{0}:ConfirmButton runat=server>

")] ”,这样使得 aspx 页面显示的该控件 xml 代码标识显示“

1<cc1: confirmbutton="" …=""> …  </cc1:>

”。

下面进一步修改代码,删除原有代码:

private string text;

[Bindable( true ),

Category("Appearance"),

DefaultValue("")]

public string Text

{

get

{

return text;

}

set

{

text = value ;

}

}

添加新代码(用于设置在弹出的确认框中显示的信息):

private string _confirmMessage = "Is OK?";

[Bindable( true ),

Category("Appearance"),

DefaultValue("Is OK?")]

public string ConfirmMessage

{

get

{

return _confirmMessage;

}

set

{

_confirmMessage = value ;

}

}

最后将

protected override void Render(HtmlTextWriter output)

{

output.Write(Text);

}

改为 protected override void Render(HtmlTextWriter output)

{

base .Attributes.Add("OnClick","return confirm('"+ this ._confirmMessage+"');");

base .Render(output);

}

3 .添加在工具箱中显示的图标

选择菜单 [ 项目 ]/[ 添加新项 ] ,在弹出的对话框中选择创建“位图文件”并将文件名改为“ ConfirmButton ”( 很重要 ,位图文件名必需和类名一致)。然后在“解决方案资源管理器”中选中该位图文件,并在属性设置框中将“生成操作”的值设置为“嵌入的资源”。

好了,编译一下吧,一切 OK 了。剩下的事,就是把编译好的 dll 文件找到并添加到工具箱中,在以后的 WEB 应用程序中就可以用了。

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