- 1、本文档共82页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.NET主讲教师: e-mail: 2008sjyx@163.com手机12讲 服务器控件(三)12.1用户控件 12.2导航控件12.3母版页12.4服务器控件综合实例12.1用户控件如果在应用程序反复多次使用某种类型的功能且ASP.NET内置的服务器控件又不能满足应用程序的要求,ASP.NET提供了用户控件的技术来处理此类问题。用户控件是ASP.NET提供的一种直观的可重用的模型。用户控件使开发人员能够使用编写Web窗体页的相同编程技巧轻松地定义自定义控件。12.1用户控件12.1.1 用户控件概述12.1.2创建用户控件12.1.3设计用户控件属性12.1.1 用户控件概述用户控件是能够在其中放置标记和Web服务器控件的容器。可以将用户控件作为一个单元对待,为其定义属性、方法和事件。用户控件可以独立于Web窗体而单独使用,使程序员能够很容易地跨ASP.NET Web应用程序划分和重复使用公共UI功能。用户控件和ASP.NET窗体页的相同点(1)都可以向其中添加所需的标记和子控件,具有用户界面页。(2)都包含对其内容进行操作的事件代码,操作方法也相同。(3)在第一次请求时被编译并存储在服务器内存中,缩短以后请求的响应时间。用户控件和ASP.NET窗体页的不同点用户控件扩展名为.ascx,代码扩展名为为.ascx.cs。用户控件没有Page指令和html、body或者form元素,不能直接显示在浏览器上,只能通过在页面中被使用才能显示在浏览器上。12.1.2创建用户控件用户控件的声明语法和创建ASP.NET页面的语法非常的相似,其主要的差别在于:用户控件使用@Control指令取代了@Page指令。用户控件在内容外部不包括html、body和form元素。用户控件示例(1)启动VS2008打开或者新建一个网站,在【解决资源管理器】窗格中,右击选择网站URL,打开快捷菜单,选择【添加新项】,在【添加新项】对话框的对话框中单击【Web用户控件】,【名称】框中输入Web用户控件的名称,WebUserControl1.ascx后,单击【添加】按钮。(2)VS2008将在网站所在的根目录中创建WebUserControl1.ascx文件及后台代码WebUserControl1.ascx.cs。(3)自动生成的WebUserControl1.ascx文件中如下所示一行代码:%@ Control Language=C#“ AutoEventWireup=true CodeFile=WebUserControl1.ascx.cs Inherits=WebUserControl1 %(4) 在该用户控件的HTML【设计】视图中,添加一个TextBox控件TextBox1,此时,用户控件设计好了。12.1.3设计用户控件属性为用户控件添加属性体现了他的灵活性和强大功能。用户控件与普通的Web页面不同,可以定义属性,并且可以在包含它的页面中设置和读取这些属性。12.1.3设计用户控件属性接下来为上面创建的用户控件添加一个属性。为用控件添加属性非常的简单,只需在.ascx.cs文件中添加一个属性即可。下面在该用户控件中为其添加一个属性Content,可以实现对用户控件中TextBox1的Text属性的读写,代码如下所示:public string Content{ get { return TextBox1.Text; } set { TextBox1.Text = value; } }用户控件示例 续为用户控件添加完属性后,再新建一个Web页面Default6.aspx以测试该属性,步骤如下:(1)把用户控件WebUserControl1.ascx拖放到Default6.aspx窗体上,选择菜单“生成”-“重新生成网站”,则在该用户控件的【属性】窗口,可以看到为用户控件定义好的属性——Content。(2)在Web窗体Default6.aspx上添加一个Button控件Button1,并设置按钮Text属性值为“确定”,添加一个Label控件Label1,双击Button1控件,进入后台代码编写窗口,在该事件处理程序编写如下代码: if (WebUserControl1.Content!= ) Label1.Text = WebUserControl1.Content + ,你好!;Else Label1.Text = 请输入你的姓名!;(3)在Default6.aspx的PageLoad()事件代码中,编写如下代码:if (WebUserControl1.Content == ) Label1.Text = 请输入你的姓名!;Default6.aspx运行效果12.2导航控件对于一个
文档评论(0)