★★创造未来★★

Only Creation Can Develop The World!

王立军ID:masterall
306040次访问,排名166(-1)好友0人,关注者0
masterall的文章
原创 570 篇
翻译 0 篇
转载 0 篇
评论 45 篇
masterall的公告
最近评论
LOOPHY:it's so helpful. uuuuuuuuuup!!
LOOPHY:it's so helpful. uuuuuuuuuup!!
yixincao925:源文件什么的都看不到,后面的看了等于没看.
yixincao925:为什么都看不到源码?
所有的都是空的啊?
yixincao925:???????????
文章分类
收藏
    相册
    友情链接
    LonelyWord
    我的另一个Blog
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 ASP.NET立即上手教程 7收藏

    新一篇: VB.NET多线程开发实例 | 旧一篇: ASP.NET立即上手教程 6

    Web Forms 用户控件
    用户控件介绍
    除了ASP.NET提供的内建的服务器控件外,你还可以使用已经掌握的制作WEB FORMS 页面的
    技术,轻松的定义自己的控件。实际上,只需要稍微改动一下,几乎任何WEB FORMS页面都
    可以作为服务器控件,在其他页面上重复使用。(注意用户控件的类型是System.Web.UI.U
    serControl, 它直接从System.Web.UI.Control继承而来)。 Web Forms 页面被作为服务器
    控件使用的时候,简称为用户控件。转变之后,通常使用.ascx扩展名来表明用户控件。这
    就保证了用户控件文件不能作为一个单独的web form页面来执行(你可以明白,在用户控件
    和web forms 页面之间,有一点,但是很重要的区别)。用户控件使用Register(注册)指
    令包含在Web Forms 页面中:
    TagPrefix 为用户控件确定了唯一的名称空间。(这样,具有相同名字的多个用户控件可以
    互相区分). TagName 的值是用户控件的唯一名称(你可以使用任何名字)。 Src 属性是用
    户控件的虚拟路径—例如"MyPagelet.ascx" 或者 "/MyApp/Include/MyPagelet.ascx"。
    注册用户控件之后,你可以在web forms页面中放置用户控件标签,就像是用平常的服务器
    控件一样(包含runat="server" 属性):
    下面的例子展示了web forms页面引入用户控件的情况。本例中的用户控件仅仅是一个简单
    的静态文件。
    C# Pagelet1.aspx
    [运行] | [源文件]
    扩展用户控件的属性
    当web forms页面作为用户控件处理的时候,web forms页面的公共字段和方法升级为公共
    属性(即标签属性)和公共方法(标签的方法)。下面的例子将上一个例子中的用户控件进
    行延伸,增加了两个公共 String字段。注意这两个字段既可以在包含页中直接声明,也可
    以用程序来控制。
    C# Pagelet2.aspx
    [运行] | [源文件]
    除了将公共字段升级为控件属性外,也可以使用属性语法。 使用属性语法胜过为了设定或
    者取得属性值而执行代码。下面的例子示范了一个Address 用户控件,他绑定了TextBox
    控件的text 属性。这样做的好处在于该控件“免费”继承了TextBox 控件的自动状态管理
    。注意在包含web forms页面中有两个Address 用户控件,分别为"Billing Address" 和
    "Shipping Address" 设置Caption 属性。用户控件的真正强大之处就是这种重复利用。
    C# Pagelet3.aspx
    [运行] | [源文件]
    用户控件的另一个有用之处是 Login 控件,用来收集用户名和密码。
    C# Pagelet4.aspx
    [运行] | [源文件]
    在这个例子中,服务器验证控件添加到了Login用户控件中
    C# Pagelet5.aspx
    [运行] | [源文件]
    在用户控件中封装事件
    如同普通的服务器控件一样,用户控件参与整个请求执行的生命周期。这就意味着,用户
    控件能够操作自己的事件,从包含web forms页中封装某些页面逻辑。
    下面的例子演示了一个产品列表用户控件,它在内部处理了自己的提交返回。注意用户控
    件自身没有绑定
    控件。因为只有一个表单控件出现在页面上(asp
    .net不允许嵌套服务器表单),于是留给包含web forms 页面去定义他。
    C# Pagelet6.aspx
    [运行] | [源文件]
    用程序创建用户控件
    如同普通服务器控件可以用程序创建一样,用户控件也一样。页面的LoadControl方法用来
    载入用户控件,同时将虚拟路径传递给用户控件的源文件所在。
    Control c1 = LoadControl("pagelet7.ascx");
    ((Pagelet7CS)c1).Category = "business";
    Page.Controls.Add(c1);
    用户控件的类型是由Control 命令的ClassName 属性所决定。例如下面的例子,一个文件
    名保存为"pagelet7.ascx"的用户控件被赋值为 "Pagelet7CS" 强类型:
    因为LoadControl 方法返回的类型是System.Web.UI.Control, 所以为了设置用户控件的个
    别属性,它必须抛出适当的强类型。最终,用户控件加入到基本页面的ControlCollectio
    n 集合中。
    C# Pagelet7.aspx
    [运行] | [源文件]
    重要提示 对于包含用户控件的web forms 页面,只有当Register 命令包含了用户控件(
    即使没有用户控件标签被实际声明),用户控件的强类型才是可利用的。
    本章小结
    1. 用户控件允许开发者使用创建web forms页面所使用的程序设计技术,轻松的创建自定
    义控件。
    2. 作为与普通页面的区别,使用.ascx 文件扩展名来表明用户控件。这就保证了用户控件
    不能像标准web forms页面那样执行。
    3. 使用Register 命令,将用户控件包含在web forms页面中。Register 命令指定了TagP
    refix, TagName, 和Src location。
    4. 注册了用户控件之后,就可以像对待普通服务器控件那样,使用用户控件(包含runat
    ="server" 属性)。
    5. 用户控件被包含在web forms 页面中以后,他的公共字段、属性和方法升级为控件的公
    共属性(标签属性)和方法。
    6. 用户控件参与每个客户端请求的整个生命周期,并且处理自身的事件,封装了部分包含
    他的web forms页面的页面逻辑。
    7. 用户控件不能包含任何form控件。如果需要的话,可以在包含他的web form页面中使用
    form控件。
    8. 用户控件可以用System.Web.UI.Page类的LoadControl方法用用程序来创建。用户控件
    的类型由Control 命令的ClassName 属性所决定。
    9. 对于包含用户控件的web forms 页面,只有当Register 命令包含了用户控件(即使没
    有用户控件标签被实际声明),用户控件的强类型才是可利用的。

    发表于 @ 2005年04月04日 00:06:00|评论(loading...)|编辑

    新一篇: VB.NET多线程开发实例 | 旧一篇: ASP.NET立即上手教程 6

    评论

    #chinahbszdj 发表于2005-10-13 21:54:00  IP:
    TrackBack来自《Web Forms 用户控件》

    Ping Back来自:blog.csdn.net
    #yixincao925 发表于2007-08-31 16:37:14  IP: 60.191.4.*
    源文件什么的都看不到,后面的看了等于没看.
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © masterall