您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 45第9章用户控件与自定义服务器控件
第9章用户控件与自定义服务器控件在使用ASP.NET3.5进行开发时,不但可以使用VS2008封装的服务器控件,开发人员还可以自己定义控件,把Web开发过程经常需要重复使用的功能模块封装成用户自己定义的控件,在后续开发过程中,可以直接调用它们,或者做简单的修改就可以使用了。这样可以减小开发人员的工作量,做到一次开发重复使用的效果。例如,在实际开发过程中的注册模块、登录模块等功能一般的网站都会具备,而开发人员只需要在第一次开发的过程中将其功能实现,并封装成用户控件,这样在开发别的网站时,就可以直接调用它们,从而省去大量的时间,提高了工作效率。章节内容9.1用户控件9.2自定义控件9.3复合控件9.1用户控件开发人员可以根据开发的需求自行定义和编写用户控件,其编写的方法和编写普通的ASP.NETWeb页面相同。用户控件后缀名为.ascx,这样就与普通的Web页面区别开来,但编写的过程是相同的。9.1.1创建用户控件在“添加新项”窗口中,选择“Web用户控件”选项,在“名称”文本框中可以重新命名用户控件的名称。9.1.2使用用户控件在ASP.NET中引用用户控件时,需要在引用页中使用以下代码来注册用户控件,这样用户控件才能在普通的Web页面中使用。%@RegisterTagPrefix=“Sample”TagName=“Login”Src=“~/login.ascx”%//声明控件引用上述代码中实现了在ASP.NETWeb页面中注册用户控件,在这段代码中,有几个属性是必须编写的,这些属性的功能如下。◦TagPrefix:定义控件位置的命名空间。有了命名空间的制约,就可以在同一个页面中使用不同功能的同名控件。◦TagName:指向所用控件的名字。◦Src:用户控件的文件路径,可以为相对路径或绝对路径,但不能使用物理路径。9.1.3将Web窗体转换成用户控件(1)将Web页面中的以下信息进行修改。%@PageLanguage=C#AutoEventWireup=trueCodeFile=Default.ascx.csInherits=_Default%修改后的代码如下。%@ControlLanguage=C#AutoEventWireup=trueCodeFile=Default.ascx.csInherits=_Default%(2)删除页面中的bodyhtmlhead等标记。(3)将.cs文件中的以下信息进行修改。publicpartialclass_Default:System.Web.UI.Page修改后的代码如下。publicpartialclass_Default:System.Web.UI.UserControl(4)将页面的后缀名修改成.ascx。9.2自定义控件用户控件能够执行很多操作,并实现一些功能,但是在复杂的环境下,用户控件并不能够达到开发人员的要求,因为用户控件大部分都是使用现有的控件进行组装,编写事件来达到目的。于是,ASP.NET允许开发人员编写自定义控件实现复杂的功能。9.2.1创建自定义服务器控件在“新建项目”窗口中,选择“模板”选项组中选择“ASP.NET服务器控件”选项。9.2.2使用自定义服务器控件单击“项目”选项卡,可以看到,在这里面没有任何的引用信息,这时就需要开发人员单击“浏览”选项卡,找到自定义的控件,添加进来。如果在“项目”选项卡中有已经引用好的自定控件,可直接选择,然后单击“确定”按钮。9.2.2使用自定义服务器控件图1“添加引用”窗口图2“项目”选项卡9.2.3将自定义控件添加到工具箱在VisualStudio中创建一个新项目,其包含一个单独的页面(如Default.aspx)。通过以下步骤将自定义控件DemoServerControl添加到VisualStudio的工具箱中。◦(1)单击菜单栏中的“工具”→“选择工具箱项”命令,弹出“选择工具箱项”窗口,如图3所示。◦(2)单击“浏览”按钮,使其转至包含DemoServerControl控件所在目录,如图4所示。9.2.3将自定义控件添加到工具箱图3“选择工具箱项”窗口图4找到程序集9.2.3将自定义控件添加到工具箱◦(3)选中.dll文件后,单击“打开”按钮,会在“选择工具箱项”窗口中出现ServerControl1程序集,如图5所示。◦(4)单击“确定”按钮之后,ServerControl1控件就出现在工具箱中了,如图6所示。9.2.3将自定义控件添加到工具箱图5ServerControl1程序集图6ServerControl1控件出现在工具箱中9.3复合控件复合控件由多个组件组合而成,复合控件的功能要比简单组合几个控件的功能要强大得多,而且很多时候具有一定的专项性。在ASP.NET中的Login控件就是一个典型的复合控件。该控件用户界面由多个单独控件组合而成,并且使用单一的API对控件进行设置和访问,具有快速实现用户登录的功能。9.3复合控件要想创建复合控件必须要实现以下两点。◦(1)通常情况复合控件类必须派生自System.Web.UI.WebControls.CompositeControl类。◦(2)必须重写Control基类的CreateChildControls方法,以便对子控件进行初始化、实例化,并将其添加到控件树中。CreateChildControls用于通知使用基于合成实现的服务器控件,创建它们包含的任何子控件,以便为回发或呈现做准备。重写该方法是实现复合控件的关键所在。这种类撰写的方法将通知.NET框架有关复合控件中包含哪些子控件,以及各个子控件在控件树中的位置和关系等内容。通过这种方法,复合控件将复用子控件提供的实现来进行呈现、事件处理、样式及其他功能。
本文标题:45第9章用户控件与自定义服务器控件
链接地址:https://www.777doc.com/doc-3176280 .html