首页 > 语言 > 关键词 > ASP.NET最新资讯 > 正文

ASP.NET立即上手教程(7)

2007-09-14 11:11 · 稿源:网页教学网

Web Forms 用户控件

用户控件介绍

除了ASP.NET提供的内建的服务器控件外,你还可以使用已经掌握的制作WEB FORMS 页面的技术,轻松的定义自己的控件。实际上,只需要稍微改动一下,几乎任何WEB FORMS页面都可以作为服务器控件,在其他页面上重复使用。(注意用户控件的类型是System.Web.UI.UserControl, 它直接从System.Web.UI.Control继承而来)。 Web Forms 页面被作为服务器控件使用的时候,简称为用户控件。转变之后,通常使用.ascx扩展名来表明用户控件。这就保证了用户控件文件不能作为一个单独的web form页面来执行(你可以明白,在用户控件和web forms 页面之间,有一点,但是很重要的区别)。用户控件使用Register(注册)指令包含在Web Forms 页面中:

<%@ Register TagPrefix="Acme" TagName="Message" Src="pagelet1.ascx" %>

TagPrefix 为用户控件确定了唯一的名称空间。(这样,具有相同名字的多个用户控件可以互相区分). TagName 的值是用户控件的唯一名称(你可以使用任何名字)。 Src 属性是用户控件的虚拟路径—例如"MyPagelet.ascx" 或者 "/MyApp/Include/MyPagelet.ascx"。 注册用户控件之后,你可以在web forms页面中放置用户控件标签,就像是用平常的服务器控件一样(包含runat="server" 属性):

<Acme:Message runat="server"/>

下面的例子展示了web forms页面引入用户控件的情况。本例中的用户控件仅仅是一个简单的静态文件。

扩展用户控件的属性

当web forms页面作为用户控件处理的时候,web forms页面的公共字段和方法升级为公共属性(即标签属性)和公共方法(标签的方法)。下面的例子将上一个例子中的用户控件进行延伸,增加了两个公共 String字段。注意这两个字段既可以在包含页中直接声明,也可以用程序来控制。

除了将公共字段升级为控件属性外,也可以使用属性语法。 使用属性语法胜过为了设定或者取得属性值而执行代码。下面的例子示范了一个Address 用户控件,他绑定了TextBox 控件的text 属性。这样做的好处在于该控件“免费”继承了TextBox 控件的自动状态管理。注意在包含web forms页面中有两个Address 用户控件,分别为"Billing Address" 和 "Shipping Address" 设置Caption 属性。用户控件的真正强大之处就是这种重复利用。

用户控件的另一个有用之处是 Login 控件,用来收集用户名和密码。

在这个例子中,服务器验证控件添加到了Login用户控件中

在用户控件中封装事件

如同普通的服务器控件一样,用户控件参与整个请求执行的生命周期。这就意味着,用户控件能够操作自己的事件,从包含web forms页中封装某些页面逻辑。

下面的例子演示了一个产品列表用户控件,它在内部处理了自己的提交返回。注意用户控件自身没有绑定<form runat="server">控件。因为只有一个表单控件出现在页面上(asp.net不允许嵌套服务器表单),于是留给包含web forms 页面去定义他。

用程序创建用户控件

如同普通服务器控件可以用程序创建一样,用户控件也一样。页面的LoadControl方法用来载入用户控件,同时将虚拟路径传递给用户控件的源文件所在。

Control c1 = LoadControl("pagelet7.ascx");
((Pagelet7CS)c1).Category = "business";
Page.Controls.Add(c1);

用户控件的类型是由Control 命令的ClassName 属性所决定。例如下面的例子,一个文件名保存为"pagelet7.ascx"的用户控件被赋值为"Pagelet7CS" 强类型:

<%@ Control ClassName="Pagelet7CS" %>

因为LoadControl 方法返回的类型是System.Web.UI.Control, 所以为了设置用户控件的个别属性,它必须抛出适当的强类型。最终,用户控件加入到基本页面的ControlCollection 集合中。

重要提示 对于包含用户控件的web forms 页面,只有当Register 命令包含了用户控件(即使没有用户控件标签被实际声明),用户控件的强类型才是可利用的。

本章小结

1、用户控件允许开发者使用创建web forms页面所使用的程序设计技术,轻松的创建自定义控件。

2、作为与普通页面的区别,使用.ascx 文件扩展名来表明用户控件。这就保证了用户控件不能像标准web forms页面那样执行。

3、使用Register 命令,将用户控件包含在web forms页面中。Register 命令指定了TagPrefix, 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 命令包含了用户控件(即使没有用户控件标签被实际声明),用户控件的强类型才是可利用的。

  • 相关推荐
  • 大家在看
  • 王自健上手华为MatePad Pro:看片完胜苹果

    6月9日晚,王自健评价华为MatePad Pro:看片秒苹果。MatePad Pro 5G是华为Mate系列新一代平板电脑,首销到手价为4999元。MatePad Pro 5G采用10.8英寸2K分辨率全面屏,屏占比90%,搭载麒麟

  • Esprinet以3400万欧元收购GTI

    [TechWeb]意大利批发商Esprinet宣布已与GTI达成协议,以购买该公司100%的股份。这项行动共计3380万欧元,将在当局于9月底批准时以现金支付。通过购买GTI,Esprinet凭借收入和与Tech Data的距离本身,成为西班牙市场上第一家批发商,该公司在过去几年中一直与该公司争夺排名第一的位置。此外,GTI将提供Esprinet,该公司在西班牙经营JoséMaríaGarcía(这是一项补充业务),该业务是通过云销售的软件,尤其是Microsoft的软件。?

  • Planet将通过SpaceX的火箭发射6颗Skysat卫星

    DoNews 6月10日消息(记者 刘文轩)据The Verge报道,卫星影像公司Planet将在6月和7月的两次卫星发射中,采用SpaceX的火箭,各运送3颗110kg重的卫星。至于价格,SpaceX则是以每公斤500美元的价格来计算,Planet发射副总裁Mike Safyan表示,SpaceX将发射费用压低到“难以置信”的程度。Planet原本运营着60颗中解析度卫星,2017年收购Google的Terra Bella卫星影像部门后,Planet拥有了7颗高解析度Skysat卫星。在这之后,Planet又发射

  • Win10五月更新已跑上手机:电话、短信都能用

    因为Windows 10 on ARM的存在,手机上运行Windows 10操作系统便有了理论可能。事实上,从2018年以来,爱折腾的机友们就没有停止过相关项目。据外媒报道,开发者已成功为一加6、小米MIX、Galax

  • 西瓜视频开通广告收益教程

    ​西瓜视频的广告一般会展示在视频开始或结尾的地方,开通西瓜视频广告收益后,作者将享有一定的广告收益。而平台为了平衡用户体验,并不是每次刷新都会有广告出现。那么怎么开通西瓜视频广告收益呢?以下是关于西瓜视频开通广告收益的详细介绍。

  • ColorOS 7.2潮玩功能汇总,上手根本停不下来

    OPPO Reno4 系列在 6 月 5 日正式发布,作为一台主打影像以及续航的新机,OPPO Reno4 系列已经「堆料满满」。不过OPPO似乎还不满足于此,在软件层面上,OPPO 全新系统小版本ColorOS 7. 2 还为OPPO Reno4 系列带来不少有趣的玩法。(OPPO Reno4 系列发布会上ColorOS 7. 2 带来不少潮玩功能)本次OPPO Reno4 系列搭载的ColorOS 7. 2 带来了OPPO 创新产品探索平台与用户共创社区——OPPO LAB。通过OPPO LAB,OPPO可以及时将新功能与服

  • 不会演戏的网红不是好厨子 ,剧情美食教程怎么上热门?

    当你无意间刷到这些视频时,小小的眼睛里开始出现大大疑惑。惊讶中有一丝不屑,不屑中又有一丝好奇。

  • 西瓜视频PC电脑版下载教程

    西瓜视频是一个内容覆盖很广的视频APP,里面的短视频内容很丰富。不过现在只有安卓版和iOS版,有人想要下载使用PC电脑版,具体在哪里可以下载呢,这里我们来看下电脑版的具体安装方法。

  • 雷军上手Redmi K30 Pro变焦版:真全面屏的感觉无与伦比

    6月30日晚间,雷军分享了上手Redmi K30 Pro变焦版的心得体会。雷军表示,我们在讨论产品的时候,有一些米粉超爱真全面屏。在屏下相机技术还不太成熟的时候,做弹出前置相机方案是唯一的方案。

  • 网友上手MIUI 12版小米10 Pro:感觉像换了台机器

    6月18日消息,一位网友的小米10 Pro升级到了MIUI 12稳定版,表示感觉像换了一台机器一样,各种流畅、各种漂亮的动画。小米产业投资部合伙人潘九堂表示,MIUI 12加持的小米10系列更香了。据

  • 有什么不错的蓝牙降噪耳机?618超级值得上手耳机名单

    首先,蓝牙耳机不少,蓝牙降噪耳机也不少,但是好用的蓝牙降噪耳机却不是很多,我觉得能够价格上合理还很实用的,能达到物超所值的地步,我总结几款熟知的蓝牙耳机!第一款Nank 南卡A1入耳式耳塞,对入耳式感冒的朋友可以重点注意了!!南卡A1采用全球享誉的ANC降噪技术,可识别噪音,随即主动发出修正信号,淡化背景音干扰,独享宁静时光。主动降噪深度最高可达28dB,非常值得推荐的蓝牙好物!!南卡 NANK/A1真无线蓝牙耳机 ANC主

  • docker怎么安装MySQL docker安装MySQL教程

    把MySQL放进Docker,总共需要几步?本次就通过社区版容器安装2个mysql实例,看一下部署有多简单。

  • 最强蜗牛怎么换区 超详细换区步骤教程

    ​最强蜗牛中其实是可以进行换区操作的,但是很多人还不明白到底要怎么才能进行换区,所以今天就来为大家分享一下最强蜗牛换区步骤教程。

  • 即刻怎么改密码 新版本即刻密码修改教程

    即刻APP经常的会碰到要修改密码的操作,很多人还不清楚在哪可以比较方便的改密码,下面就来为大家详细的介绍一下。

  • 荒野乱斗固定摇杆设置教程 摇杆怎么固定

    荒野乱斗中是可以使用摇杆的,很多玩家还不清楚怎么让摇杆固定设置好,下面就来为大家详细的介绍一下荒野乱斗固定摇杆设置教程。

  • 拼多多黑卡怎么分享不了 详细黑卡分享图文教程

    拼多多品牌黑卡是一个非常实用的东西,里面的钱是可以购买商品的时候直接进行抵扣现金的,能节省很多钱,有些朋友也想分享一些邀请码,但是不知道怎么分享,下面就来为大家详细的介绍一下黑卡分享图文教程。

  • 怎么录制视频教程?电脑录屏可以这样做

    怎么录制视频教程?我们经常会用视频来记录自己的生活,同样可以用视频的形式记录电脑上的内容。在电脑上录制视频,最好使用一些专业的录屏软件,能够提高录屏的质量。如果你也在寻找一个实用的录屏软件,那下面分享的方法可以帮助到你!方法一:windows系统录屏先分享一个适用于Windows系统的方法,推荐使用电脑中的“问题步骤记录器”。首先,打开电脑后打开电脑运行窗口,也可以使用快捷键“win+r”,打开“。然后输入“psr”,

  • 微信拍一拍功能怎么用 详细操作步骤教程

    微信在最近上线了一个很好玩的功能——拍一拍,这个功能最近在微信上比较流行,可以拍一拍朋友,比起之前的QQ抖动功能更加的具有一点“人味”,很多人还不知道微信拍一拍怎么用,下面就来为大家分享一下教程。

  • 最全教程!OKEx平台币OKB福利盛宴来袭

    专业的羊毛党的一个原则是:没有羊毛那就创造一只羊来薅!作为背靠最牛交易所OKEx的主流平台币OKB,现在都有哪些羊毛可以薅? 今天我们汇总一下比较值得一试且100%成功的那些OKB的福利! 一、通过OKB抢6. 1 折比特币和 61 个OKB (福利指数:★★★★★) 活动页面: 6 月 1 日12:00- 6 月 5 日18:00 【福利】 1、6. 1 折比特币:现在一个比特币均价是 70000 元,抽中的小伙伴,相当于直接薅到将近 3 万元的羊毛!! 2、 61 个OK

  • 日本动画电影《无限》线上首映 西瓜视频与Netflix全球同步播出

    【TechWeb】6月18日消息,今天下午6点,日本动画电影《无限》(又名《想哭的我戴上了猫的面具》)开启全球首映,在中国通过西瓜视频、抖音、今日头条平台上线。这是继BBC剧集《德古拉》后,西瓜视频再度实现与Netflix全球同步播出影视作品。届时,用户可在上述平台中付费观看该片。 公开资料显示,《无限》由日本著名导演佐藤顺一和柴山智隆联合执导,主要讲述女生笹木美代的青春奇幻故事,主打超萌轻甜治愈风格。绰号为“无限”?

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议

热文

  • 3 天
  • 7天