首页 > 编程 > .NET > 正文

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

2024-07-10 12:57:14
字体:
来源:转载
供稿:网友
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></{0}:webcustomcontrol1>")]”

改为“[defaultproperty("text"),

toolboxdata("<{0}:confirmbutton runat=server></{0}:confirmbutton>")]”,这样使得aspx页面显示的该控件xml代码标识显示“<cc1:confirmbutton …> …</cc1: confirmbutton>”。

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

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应用程序中就可以用了。




收集最实用的网页特效代码!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表