170 likes | 385 Views
第 6 章 Web 应用程序开发技术. 信息科技学院. 学习要点:. 1 .掌握用户控件 2 .掌握自定义控件 3 .使用 ASP.NET 创建简单控件. 用户控件. 用户控件 使用与 ASP.NET 页相同的语法创建的用户自定义 Web 服务器控件 在多个 ASP.NET Web 应用程序之间划分和重复使用公共用户界面功能 可以使用任何文本编辑器开发 支持代码隐藏页 支持可视化开发. 用户控件. 与 Web 窗体的区别 .ascx 扩展名 不能独立地请求用户控件,必须包括在 Web 窗体页内才能使用
E N D
第6章 Web应用程序开发技术 信息科技学院
学习要点: • 1.掌握用户控件 • 2.掌握自定义控件 • 3.使用ASP.NET创建简单控件
用户控件 • 用户控件 • 使用与 ASP.NET 页相同的语法创建的用户自定义 Web 服务器控件 • 在多个 ASP.NET Web 应用程序之间划分和重复使用公共用户界面功能 • 可以使用任何文本编辑器开发 • 支持代码隐藏页 • 支持可视化开发
用户控件 • 与 Web 窗体的区别 • .ascx 扩展名 • 不能独立地请求用户控件,必须包括在 Web 窗体页内才能使用 • 不能包含 <HTML>、<BODY>和<FORM> 标签 • 使用 @Control 指令代替 @Page 指令 • 用户控件的代码隐藏类从 UserControl 类继承,Web 窗体的代码隐藏类从 Page 类继承 • 拥有自己的事件处理代码
用户控件 • @Control 指令 • 与 HTML 服务器控件、Web 服务器控件的区别 • 与 Web 自定义控件的区别 <%@ Control Language="vb" Codebehind=“control1.ascx.vb" Inherits="test. control1“ %> <%@ Control Language=“C#" Codebehind=“control1.ascx.cs" Inherits="test.control1" %>
Control1.ascx Page1.aspx Page2.aspx 使用用户控件的原因 • ASP Include 函数的不足 • 容易产生变量名、方法名冲突 • 用户控件的优点 • 独立于 Web 窗体,用户控件的变量、方法和属性不会与 Web 窗体的变量、方法和属性冲突 • 在同一 Web 窗体中多次使用用户控件不会产生冲突 • 可被 Web 应用程序内所有 Web 窗体重用 应用程序 A
8.1.2 使用用户控件的原因 使用用户控件的原因 • 用户控件的不足 • 每个应用程序中需要控件的一个单独副本 • 不能在使用其他语言开发的 Web 应用程序中重用 • 不能将用户控件添加到 Visual Studio .NET 工具箱中 • 解决方案:Web 自定义控件
添加用户控件 • 使用 @ Register 指令将用户控件添加到 Web 窗体中 • TagPrefix 属性 • 指定用户控件的标记前缀 • TagName 属性 • 指定用户控件标记的名称 • Src 属性 <%@ Register TagPrefix="demo" TagName="validNum" Src="numberbox.ascx" %>
添加用户控件 • 手动添加用户控件 • 添加 @Register 指令 • 在 Web 窗体中插入用户控件 <%@ Register TagPrefix="demo" TagName="validNum" Src="numberbox.ascx" %> ... <form id = “form1” runat=“server”> <demo:validNum id="num1" runat="server"/> </form> ...
用户控件与自定义控件 • 用户控件用.ascx文件表示;不出现在工具箱中;支持缓存;提供有限的支持 • 自定义控件用.DLL文件表示;出现在工具箱中;不支持缓存提供全面支持
用户控件与自定义控件 • 模板也属于自定义控件(User Control),所以在使用时要先注册(Register)。对主程序的第一行代码,TagPrefix定义了一个不重复的名字空间(Name Space)。TagName为自定义控件定义了一个名称。然后要指明使用的模板的文件名。注册完自定义控件后,就可以把此控件认为是服务器端控件。要使用服务器端控要使用runat=”server”属性
用户控件与自定义控件 • 用户控件不能独立存在和使用,它要求将 ASP.NET 页面作为容器
用户控件与自定义控件 • 可以象普通的ASP.NET页面一样,在用户控件上放置Web控件 • <%@ Register TagPrefix=" " TagName=" " Src=" " %>;TagPrefix为Pagelet指定一个唯一的名字空间,TagName是Pagelet的唯一名字,当然也可以换成其他的名称,如:TagName="myControl",Src属性为指向Pagelet的虚拟路径。 • 在Web页中使用自定义控件,把自定义控件拖放到Web页面即可
用户控件与自定义控件 建立自定义控件步骤: 1、在 VS.NET 的“新建项目”选项中,在模板列表中选择“Web 控件库”模板选项,把项目命名为CustomerControls。Visual Studio .NET 将创建包含单一自定义控件的代码的项目 2、添加一个新项,在模板里选择自定义控件,并为其命名。移至“生成”选项,单击“生成 * .cs”将* .cs 编译成 .dll 文件,以便可以用于 .aspx 页面中 3、在由设计器生成的代码模板 UltraTextBox.cs 中编写代码 4、把自定义控件添加到工具箱
用户控件与自定义控件 • 在 VS.NET 中创建用户控件: • 新建一个Web工程,并为其命名,用来测试控件 • 在工程添加一个页面,命名为* .aspx • 添加控件
小结 • 使用用户控件和自定义控件可以实现界面的重用 • 用户控件的扩展名是 .ascx,该控件可在一个应用程序中使用,但不能跨应用程序 • 自定义控件被编译成 .dll 文件,可以放置在工具箱里,它可以是继承于已有的Web控件,也可以是完全自定义。自定义控件可以跨应用程序域
思考练习题: • 1.编写应用程序,利用用户控件和自定义控件实现网上购物