怎么自己写组件啊,帮帮我 asp.net

wolf_410 2008-04-12 08:51:45
怎么自己写组件啊,帮帮我 ,给个例子,谢谢了
...全文
80 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolf_410 2008-04-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xiahouwen 的回复:]
你所指的就是通常大家说的自定义控件
eg:
public class MyButton:Button
{
override void OnLoad(EventArgs e){
this.Text = "MyButton";
base.OnLoad(e);
}
}
[/Quote]
正向这位老兄说所的,继承(扩展)button组件的,谢谢你,我就是要学这个。可以自己给组件写属性方法等等。生成后添加到工具箱里面,能够直接拉到前台啊

给个资料,链接也行,小弟在这里谢谢了。。。。。。。。。。。。
oec2003 2008-04-13
  • 打赏
  • 举报
回复
看看道不远人吧,讲控件开发的
活靶子哥哥 2008-04-12
  • 打赏
  • 举报
回复
你所指的就是通常大家说的自定义控件
eg:
public class MyButton:Button
{
override void OnLoad(EventArgs e){
this.Text = "MyButton";
base.OnLoad(e);
}
}
wolf_410 2008-04-12
  • 打赏
  • 举报
回复
我想要的是组件啊,就是能拉到工具箱里面的那种。生成dll文件的。不是自定义控件。大概怎么写,给个例子啊
oec2003 2008-04-12
  • 打赏
  • 举报
回复
用户控件或自定义控件
grearo 2008-04-12
  • 打赏
  • 举报
回复
编写第一个用户控件

有人认为,知道如何使用服务端控件可不一定说明编写用户控件是件容易的事。

事实上,编写一个基本用户控件(有时也称之为pagelets)并让ASP.NET页面象使用服务端控件那样使用这些控件的确是件简单的事。这里有一个简单示例:

basic.ascx

<p>
This is a user control…… really!
</p>
这就是一个用户控件!看到这里,我想你会说我该不是喝醉了,头脑不清楚吧。但这段代码的确就是易于被使用的一个用户控件。尽管这个控件没有作什么事,却是关于什么是用户控件的一个很好说明。事情并不象想像得那么复杂。注意后缀。ascx,它告诉网页这是一个用户控件。它没有什么特别含义,只是不让IIS去直接执行这段代码。

现在我们来创建一个用户控件,看下面的例子:

basic.aspx

<%@ Page Language="VB" %>
<%@ Register TagPrefix="asp101samps" TagName="SomeText" Src="basic.ascx" %>
<html>
<head>
<title>ASP.NET User Control Sample - Basic</title>
</head>

<body bgcolor="#FFFFFF">
<asp101samps:SomeText runat="server" />
</body>
</html>
这段代码输出标准HTML页面,显示用户控件里的文字而不是标记。

那么它是怎么实现的呢?关键就在注册(Register)说明。要注册控件,先要定义三个属性:

TagPrefix

定义控件位置的命名空间。有了命名空间制约,就可以在同一个网页里使用不同功能的同名控件。

TagName

指向所使用控件的名字。在同一个命名空间里的控件名是唯一的。控件名一般都表明控件的功能。

Src

指向控件的资源文件。资源文件使用虚路径("control.ascx" 或 "/path/control.ascx"),不能使用物理路径("C:pathcontrol.ascx.")。

控件注册之后,就可以象其它服务端控件一样被使用。通过定义目标前缀(TagPrefix)和目标名(TagName),就可以象使用服务端内建控件一样地进行使用。同时也确定了使用服务端运行(runat="server")方式。下面是网页调用用户控件的基本方式:

<TagPrefix:TagName runat="server" />

给用户控件增加属性并赋值

下面我给控件加上两个属性,一个是color,另一个是text.

properties.ascx

<script language="VB" runat="server">
Public Color As String = "black"
Public Text As String = "This is a user control…… really!"
</script>

<p>
<font color="<%= Color %>">
<%= Text %>
</font>
</p>
这样就可以使用和改变控件的色彩和文字了。可以在初始化时赋值,还可以动态地修改这二个属性。

在同一个网页里可以重复调用这个控件并使用不同的属性值:

properties.aspx

<%@ Page Language="VB" %>
<%@ Register TagPrefix="asp101samps" TagName="SomeText" Src="properties.ascx" %>
<script language="VB" runat="server">
Sub Page_Load(Sender As Object, E As EventArgs)
UserCtrl1.Color = "green"
UserCtrl1.Text = "This control's properties were set programmatically!"
End Sub
</script>

<html>
<head>
<title>ASP.NET User Control Sample - Properties</title>
</head>

<body bgcolor="#FFFFFF">
<asp101samps:SomeText runat="server" />
<asp101samps:SomeText Color="red" runat="server" />
<asp101samps:SomeText Text="This is quite cool!" runat="server" />
<asp101samps:SomeText Color="blue" Text="Ain't It?" runat="server" />
<asp101samps:SomeText id="UserCtrl1" runat="server" />
</body>
</html>
还想再好些,用户控件是否能够有事件句柄呢?

用户控件几乎可以作任何事。下面的代码示范控件如何触发Page_Load事件。有了事件句柄,就不用多写其它的维护代码来控制控件的运行。控件可以自己触发事件。

在下面的代码中,封装了一个ASP的textbox控件。我将我的控件名属性与textbox的内容挂钩。

events.ascx

<script language="VB" runat="server">
Sub Page_Load(Src As Object, E As EventArgs)
Dim strInitialText As String = "Please Enter a Name!"
If Page.IsPostBack Then
If txtName.Text = strInitialText
txtName.Text = ""
End If
Else
txtName.Text = strInitialText
End If
End Sub

Public Property Name As String
Get
Return txtName.Text
End Get

Set
txtName.Text = Value
End Set
End Property
</script>

Name: <asp:textbox id="txtName" runat="server" />
<asp:RequiredFieldValidator ControlToValidate="txtName" id="valtxtName" Display="Dynamic" runat=server>

Please Enter a Name!
</asp:RequiredFieldValidator>
events.aspx

<%@ Page Language="VB" ClientTarget="downlevel" %>
<%@ Register TagPrefix="asp101samps" TagName="SomeText" Src="properties.ascx" %>
<%@ Register TagPrefix="asp101samps" TagName="TextBox" Src="events.ascx" %>
<script language="VB" runat="server">
Sub Page_Load(Sender As Object, E As EventArgs)
txtLabel.Text = ""
' The textbox control handles it's own stuff
' in it's own Page_Load event handler.
End Sub

Sub btnSubmit_Click(Sender As Object, E As EventArgs)
' Sets the label to the textbox's text
txtLabel.Text = txtName.Name

' I don't need to worry about validation since
' my user control does it for me.
End Sub
</script>

<html>
<head>
<title>ASP.NET User Control Sample - Validation & Events</title>
</head>

<body bgcolor="#FFFFFF">
<form runat="server">
<asp101samps:TextBox id="txtName" runat="server" />
<asp:button id="btnSubmit" onClick="btnSubmit_Click" text="Submit" runat="server" />
</form>
<asp101samps:SomeText id="txtLabel" runat="server" />
</body>
</html>
这就是关于用户控件和应用的说明。无论你认为它是否简单,它肯定比使用传统ASP要容易。
Cassava 2008-04-12
  • 打赏
  • 举报
回复
用户控件开发
http://www.zhisi.net/Article/2007/200712/Article7775.html
服务器控件开发
http://blog.csdn.net/sunlmx/archive/2006/04/09/656463.aspx

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧