《ASPNETC10节》由会员分享,可在线阅读,更多相关《ASPNETC10节(40页珍藏版)》请在金锄头文库上搜索。
1、ASP.NET程序设计教程 第10章 高级应用,河南城建学院计算机科学与工程系,2,内容,本章主要介绍了用户控件、自定义控件、XML和Web Services等.,3,10.1.1 用户控件,4,10.1 用户控件和自定义控件,ASP.NET系统已经提供了不少控件,但这些系统提供的控件有时不能满足我们的要求,另外,我们制作的Web程序中若有数十甚至数百个页面,很多页面中有些部位可能要显示相同的信息,这时,我们需要自己制作控件。我们把这样的控件称为用户控件或自定义控件(它们是有区别的)。有了这样的控件,和系统提供的控件一样,哪些地方需要使用,只要把控件拖放到那个地方就可以了。ASP.NET中提供
2、了相应功能,允许你轻松的增加你所定义的各种控件。,5,10.1.1 用户控件,6,10.1.1 用户控件,与Web窗体页相同,可以使用VS.NET开发制作用户控件,或者使用任何文本编辑器创作用户控件。但与Web窗体页不同的是,不能独立地请求用户控件,用户控件必须包括在Web窗体页内才能使用。,7,创建用户控件,使用文本或HTML编辑器以声明方式创建用户控件。用户控件声明语法与创建Web窗体页的语法十分类似,两者的主要差别在于用户控件在内容周围不包括html、body和form元素,而Web窗体页中包括这些元素。 创建用户控件时,所做的主要工作是在代码声明块中公开属性,在事件处理程序中实现用户控
3、件功能。,8,创建用户控件举例,(1)打开VS.NET开发工具,创建LoginTest Web项目站点。 (2)执行项目|添加Web用户控件命令。 (3)点击添加Web用户控件后出现添加新 项,在对话框 模板 框中 ,选 ”Web 用户控件”,命名为UserLogin.ascx ,如图 10- 1所示,单击打开按钮,就可以在解 决方案资源管理器中将会出现刚才创建的 UserLogin.ascx文件, 如图10-2所示。,9,创建用户控件举例,(4)在设计窗口中,添加两个Button按钮,三个Label按钮,两个Text Field按钮。 (5)定义Cancel按钮和Ok按钮(代码见教)。 (6
4、)这样就做好了一个用户控件,在图10-2 中,注意到 “解决方案资源管理器”中的 Userlogin.ascx文件,扩展名为ascx。,10,使用用户控件,(1)在解决方案资源器,打开webForm1.aspx文件,并选择设计选项卡。 (2)选中UserLogin.ascx 文件。按鼠标左键将UserLogin.ascx文件拖到WebForm1.aspx设计窗口中。用户控件Userlogin.ascx在WebForm1.aspx中的设计页面中显示如图10-3所示。,11,使用用户控件,(3)选择Html选项卡,打开编辑器,看到 UserLogin.ascx 用户控件已经被自动 添加进去了。 (
5、4)其中表示映入 UserLogin.ascx文件中的UserLogin控件。 浏览包含用户控件的WebForm1.aspx页面 , 如图10-4。,12,10.1.2 自定义控件,当现有的 ASP.NET 服务器控件满足不了应用程序的要求时,则可以从基控件类的派生来创建自定义控件。这些类提供服务器控件的所有基本功能,用户通过继承和修改系统控件库所提供的控件,使其拥有新的属性、方法和事件,就可以得到你需要的自定义控件。,13,创建自定义控件,下面通过在同一个解决方案中创建两个项目,一个用于创建自定义控件 Label ,一个用于在Web 窗体页中使用和测试该控件。,14,创建自定义控件举例,(1
6、)在文件菜单上指向新建,单击项目,出现新建项目对话框。 (2)在项目类型窗格中选择 Visual C# 项目,在模板窗格中选择Web 控件库。 (3)创建时注意名称和位置(创建在wwwroot下,项目默认名为:WebControlLibrary1.dll) 添加代码:this.text=“你好“; (4)在生成菜单上,单击生成解决方案来编译控件,生成WebControlLibrary1.dll文件,它是在WebControlLibrary1.dll 项目文件夹的 Bindebug 文件夹中。,15,创建 Web 窗体页,创建 Web 窗体页是为了使用刚才创建的自定义控件。 (1)在文件菜单上选
7、添加项目,单击新建项目。 (2)在项目类型窗格中选择 Visual C# 项目,在模板窗格中选择ASP.NET Web 应用程序。打开WebForm1 页面。 在工具箱上单击右键,出现下页界面。,16,将自定义控件添加到工具箱,17,将自定义控件添加到工具箱2,点击浏览按钮。,18,将自定义控件添加到工具箱3,点击浏览按钮。,在wwwrootwebControlLibrary1bindebug下找到dll文件。,19,将自定义控件添加到工具箱3,点击浏览按钮。,在wwwrootwebControlLibrary1bindebug下找到dll文件。,20,将自定义控件添加到工具箱4,点击浏览按钮
8、。,在wwwrootwebControlLibrary1bindebug下找到dll文件。,21,自定义控件已经添加到工具箱,在wwwrootwebControlLibrary1bindebug下找到dll文件。,22,将控件添加到 Web 窗体页并测试该控件,(1)在设计视图中打开 WebForm1,从工 具箱中将 WebCustomControl1 拖到 该 ,件默认呈现在设计视图上。 出现“你好”字样,23,自定义控件和用户控件的异同,24,10.2 XML的应用,XML 是一种简单、与平台无关并被广泛采用的标准。XML 相对于 HTML 的优点是它将用户界面与结构化数据分隔开来。这种数
9、据与显示的分离使得集成来自不同源的数据成为可能。客户信息、订单、研究结果、帐单付款、病历、目录数据及其他信息都可以转换为 XML。,25,XML的诞生,10.1 什么是标记语言 网络上大行其道的超文本标记语言HTML(HyperText Markup Language). XML和HTML同属一个大家族标记语言家族, 我们就首先从HTML讲起。 HTML代码示例: li01.htm 显示了一个客户联系信息列表:,26,XML的诞生,可扩展标记语言XML(eXtensible Markup Language)也是一种标记语言。 XML的核心归根结底还是标记。不过,XML这个标记语言可比HTML的
10、功能要强大的多了。 XML的强大功能来自于“X”。也就是说,XML不但是标记语言,而且是可扩展的(eXtensible)标记语言。 XML并非象HTML那样,提供了一组事先已经定义好了的标签,而是提供了一个标准,利用这个标准,你可以根据实际需要定义自己的新的标记语言,并为你的这个标记语言规定它特有的一套标签。,27,XML的制定目标:,XML应该可以在互联网上直接使用(*就象HTML那样好用)。 XML应该支持各种不同的应用方式(*不但包括浏览,还包括对内容的分析)。 XML应该与SGML兼容(*子承父业嘛,后面我们会讲到,SGML是XML的直接先驱)。 处理XML文件的应用程序应该容易编写(
11、*计算机系的研究生花上两周的工夫就该差不多了)。 XML中的可选特性的数量应该减到最小,最好减至没有(*可选特性经常造成混淆)。,28,XML的制定目标():,XML文件应该具有良好的可读性,并且比较清晰(*别象HTML那样,如果不借助浏览器,要想读它简直就是对你意志力和耐心的考验)。 用XML设计新的标记语言应该方便快捷(你不必再去经历标准制定的繁琐程序了)。 XML设计的标记语言应该正式、简洁(不然怎么易写易读?)。 XML文件应该容易编制(想想要用“记事本”写个HTML是一件多么可怕的工作)。 XML标记的简洁性并不重要(你不必再去费尽心机减少标记)。,29,一个非常简单的XML例子(c
12、lient.xml), 张三 001 A公司 (010)62345678 五街1234号 北京市 北京 100001 ,30,10.2 为什么要用XML,仍从HTML说起 HTML自身的特点使它蕴藏了许多危机,随着它不断的发展,这些危机不但没有减弱,反而越来越突出,甚至已然成为HTML继续发展应用的障碍。时至今日,连HTML经过几年来广泛应用所赢得的资深声誉也无法掩饰其日益深刻的危机了。,31,HTML自身的特点使它蕴藏了许多危机,HTML越来越侧重于信息的表示,标签中原本就很微弱的信息描述的含义也被削弱了。最后,HTML终于演变为专门用于Netscape和Microsoft IE两大浏览器
13、的页面显示语言。 日益增多的标签不但使HTML越来越庞大,浏览器的开发越来越复杂,还降低了不同浏览器之间的兼容性。 尽管HTML的标签越来越多,其显示力却还远远不够。 现在HTML内部结构的条理性越来越差。 那些原本条理清晰、层次分明的数据库的内容在HTML文件中早就被各种各样的标签搞得混乱不堪,而搜索引擎则不得不在这些混乱的内容中大海捞针!,32,1.XML的第一大优势畅通的网上世界,XML打破了标记定义的垄断,将网上世界变为一个更加自由民主的世界。 现在有了XML,你终于可以自由地制定你自己的标记语言,而不必再念念不忘微软、Netscape、W3C的首肯了。 XML在网络应用中有着确确实实
14、的作用。 XML好就好在它允许各个组织、个人建立适合他们自己需要的标记库,并且,这个标记库可以迅速地投入使用。,33,许多行业、机构都利用XML定义了自己的标记语言。,现在许多行业、机构都利用XML定义了自己的标记语言。比较早而且比较典型的是下面两个实例: 化学标记语言CML (Chemistry Markup Language),by Peter Murray-Rust 数学标记语言MathML (Mathematical Markup Language) 1.0 Specification, W3C Recommendation 07-April-1998,34,XML的第二大优势超越于格
15、式之上,XML的最大能量来源于它不仅允许你定义自己的一套标记,而且这些标记不必仅限于对于显示格式的描述。 XML允许你根据各种不同的规则来制定标记,比如根据商业规则,根据数据描述甚至根据数据关系来制定标记。 见例子: li01.htm li01.xml,35,html格式文件的三个严重问题,显示方式内嵌于数据之中 在这些数据中寻找信息非常困难 数据自身的逻辑不得不屈服于HTML语言规范的逻辑 当使用XML时,以上的问题迎刃而解。,36,XML格式文件使问题得以解决,在XML中,显示样式从数据信息中抽取出来,放在样式单文件中。这样,如果需要改动信息的表现方式,无须改动信息本身,只要改动样式单文件
16、就够了。 在XML中数据搜索可以简单高效地进行。搜索引擎没必要再去遍访整个XML文件,它只须去找一找相关标记下的内容就够了。 XML是自我描述语言。即便对于一个预先对我们的FCLML一无所知的人,这个文件也是清晰可读的。,37,4 XML的其它优点,XML至少还有下面的优点。 1. XML遵循严格的语法要求 前面讲过,HTML的语法要求并不严格,浏览器可以显示有文法错误的HTML文件。但XML就不同了,它不但要求标记配对、嵌套,而且还要求严格遵守DTD的规定,比如在前面的client.xml中,你决不能在这对标记外面,再套上一层标记。,38,4 XML的其它优点(2),2. XML便于不同系统之间信息的传输 在不同的平台、不同的数据库软件之间传输信息,不得不使用一