您的位置:首页 > 其它

User control(用户控件) vs custom control(自定义控件)

2008-03-26 11:25 776 查看
通俗点说,用户控件就是你可以在visual studio工具栏里面拖一个或多个控件,然后像编写普通aspx页面那样就可以开发,所以开发难度相对较低。而定制控件没有这种可视化的支持,需要在自 己的头脑中展现这个控件的可视化输出,通过改写RenderContents(HtmlTextWriter output)方法来定义。下面一个非常简单的Hello world的例子分别用两种控件来展示:在页面显示“hello world”

首先用user control:
1. 在visual studio 2005中新建一个站点:



2. Add new item: web user control:





3. 双击WebUserControl.ascx,切换到Design视图,从工具栏里拖一个label过来,把Text属性改为:Hello world.





4. 将WebUserControl拖到Default.aspx中, visual studio 会自动注册这个用户控件。 Default.aspx代码如下:




<%

@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>




<%

@ Register Src="WebUserControl.ascx" TagName="WebUserControl" TagPrefix="uc1" %>


<!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 runat="server">


<title>Untitled Page</title>


</head>


<body>


<form id="form1" runat="server">


<div>


<uc1:WebUserControl ID="WebUserControl1" runat="server" />


</div>


</form>


</body>


</html>
5. 按F5运行网站:





现在用定制控件:

1.新建一个项目web control library, 并把这个项目加入到网站solution中。







2. 双击WebCustomControl1.cs,可以看见存在一个Text属性,所以在这个hello world例子里我们不需要增加任何代码。编译并产生一个dll.

3. 把这个dll文件拷贝到网站的Bin目录下, 并修改Default.aspx,如下:




<%

@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>




<%

@ Register Src="WebUserControl.ascx" TagName="WebUserControl" TagPrefix="uc1" %>




<%

@ Register TagPrefix="cc1" Namespace="WebControlLibrary1" Assembly="WebControlLibrary1" %>


<!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 runat="server">


<title>Untitled Page</title>


</head>


<body>


<form id="form1" runat="server">


<div>


<uc1:WebUserControl ID="WebUserControl1" runat="server" />


<cc1:WebCustomControl1 Text="Hello world from custom control" runat="server" />


</div>


</form>


</body>


</html>
4. 按F5运行:





注:在页面注册控件也可以通过web.config来完成,这样可以不用再每个页面文件头上写<%@ Register ...%>语句。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: