《静态网页设计教程(8常用第三方工具与控件).ppt》由会员分享,可在线阅读,更多相关《静态网页设计教程(8常用第三方工具与控件).ppt(31页珍藏版)》请在金锄头文库上搜索。
1、静态网页设计教程静态网页设计教程静态网页设计教程静态网页设计教程学习情境八学习情境八常用第三方工具与控件常用第三方工具与控件回顾2-1n简述DataList、GridView、Repeater三个控件各有什么优势?GridView简单方便Repeater不生成冗余代码,效率最高DataList介于两者之间,方便、性能也不错n简述使用Repeater的步骤。分解模板页(美工提供的页面)替换标签,并放入Repeater的项模板中绑定数据n下面是图书列表绑定的方法,检查有什么问题。回顾2-2privatevoidDatabind()PagedDataSourcepdsBooks=newPagedDa
2、taSource();pdsBooks.DataSource=BookManager.GetOrderedSmallBooksByCategoryId(Convert.ToInt32(ViewStatetypeid),(string)ViewStateOrder);pdsBooks.AllowPaging=true;pdsBooks.PageSize=4;lblCurrentPage.Text=第第+(pdsBooks.CurrentPageIndex+1).ToString()+页页共共+pdsBooks.PageCount.ToString()+页页;dlBooks.DataSource=
3、pdsBooks;指定数据源后未使用绑定方法指定数据源后未使用绑定方法分页未指定当前页分页未指定当前页预习检查CodeSmith是做什么用的?为什么要使用验证码?使用哪种控件可以完成带格式的文本内容的录入?本章任务n为用户注册增加验证码n图书编辑使用富文本控件( FreeTextBox )n使用CodeSmith生成实体类验证码验证码可编辑可编辑HTML的控件的控件使用模板生成标准统一的实体类使用模板生成标准统一的实体类本章目标n会使用验证码控件制作验证码n会使用FreeTextBox控件录入富文本n能使用CodeSmith生成实体类代码第三方控件n微软提供的控件不够丰富偶尔效果不理想(比如日
4、历)n第三方控件简单方便大部分可以免费下载有使用说明拿来主义 HTML的录入n第三波网络书店的图书目录中,要显示下面一部分内容:n实际上,该部分的内容是第第部分部分CLR基础基础第第1章章CLR的执的执行模型行模型就是说,我们在录入目录信息时,需要编写就是说,我们在录入目录信息时,需要编写HTML代码才能达到所需的代码才能达到所需的效果。效果。能不能像Word那样编辑带格式的内容呢?在线文本编辑器n在线文本编辑器解决了HTML格式录入的问题n常用的在线文本编辑器RichTextBox,最早的富文本控件,富文本控件因它而得名;FCKeditor,是国外一个开源的项目;CuteEditor,功能最
5、为完善,但它自身也是相当庞大的;eWebEditor,国产软件,有中国特色;FreeTextBox,简单方便,国内使用相当普遍。FreeTextBoxn演示FreeTextBox的使用将FreeTextBox添加入工具栏将FreeTextBox控件放入图书的编辑和添加模板中设置相关ObjectDataSource参数查看运行效果演示示例:演示示例:图书目录的编辑录入图书目录的编辑录入验证码n百度注册的页面n为什么需要验证码?防止不法分子通过穷举方式破解密码、盗取钱财。防止竞争对手通过大量注册,破坏网站的稳定。验证码验证码验证方式n基于Cookie的验证Js脚本验证,美观方便,无刷新Cookie
6、在客户端,不够安全,且编码复杂n基于Session的验证相对安全,仍需要手写编码n基于控件的验证使用方便,很少或无须手写编码比较安全验证码控件n演示Webvalidates的使用方式添加控件到工具栏将控件拖放到注册页面编写注册验证代码演示示例:演示示例:使用验证码的注册页面使用验证码的注册页面验证代码protectedvoidPage_Load(.)if(!this.IsPostBack)snCode.Create();protectedvoidbtnSubmit_Click(.)if(!snCode.CheckSN(this.txtCode.Text).snCode.Create();els
7、e.生成验证码,注意只在首次生成验证码,注意只在首次加载时使用加载时使用比较验证码是否正确,比较验证码是否正确,返回布尔型结果返回布尔型结果小结n简述将第三方控件显示在工具栏的步骤。n验证码控件Webvalidates的哪个方法可以生成一个新的验证码?nWeb开发中,哪些地方需要验证码?编码回顾n回顾网上书店开发过程模型层把数据库的表变成类数据层增、查、改、删(CRUT)业务层调用数据层进行增查改删n能否简化减少重复编码,提高开发效率?使用工具生成代码使用工具生成代码重复进行相似的工作重复进行相似的工作代码生成工具n常见代码生成工具Code Smith国外最著名的商业代码生成器。国外最著名的商
8、业代码生成器。宣扬快捷开发,支持多种语言宣扬快捷开发,支持多种语言代码生成工具n常见代码生成工具Code SmithMyGeneratoe:国外著名免费代码生成器,开源软件。Codematic国内人气最旺的免费代码生成器,国内人气最旺的免费代码生成器,基于基于C#和和SQLServer,方便快捷,方便快捷,可自动生成整站代码可自动生成整站代码代码生成工具n常见代码生成工具Code SmithMyGeneratoe:国外著名免费代码生成器,开源软件。CodematicMacrObject国内一款不错的商业代码生成器,基于国内一款不错的商业代码生成器,基于Nuva(女娲女娲)语言。语言。支持多套模
9、板一次生成代码支持多套模板一次生成代码能够保存数据架构和配置信息能够保存数据架构和配置信息应用最广泛应用最广泛初识CodeSmithn演示生成Book实体类打开CodeSmith Explorer找到DatabaseSchema中的模板businessobject.cst双击该模板,选择数据表(需要添加数据连接)单击“Generate”(生成)查看生成的代码,并与我们使用的实体类相比较演示示例:演示示例:实体类的生成实体类的生成实体类生成了,但却不是我们想要的格式实体类生成了,但却不是我们想要的格式CodeSmith的模板n模板是代码生成的基础以.cst为后缀名可以使用C#语言编写代码nCod
10、eSmith的模板由以下三部分组成静态内容:固定不变的内容(实体类中的“public”等);能够自动生成的内容(当前时间等);动态内容:需要用户指定的内容(参数)。CodeSmith模板入门n声明模板属性n定义参数编写模板使用的语言编写模板使用的语言确认生成文件类型确认生成文件类型该参数需输入该参数需输入CodeSmith模板入门n基本语法脚本标签publicstringDrawLine(intnum)stringstr=;for(inti=0;i=num;i+)str+=*;returnstr;可使用与可使用与C#编码一样的编码一样的方式编写代码方式编写代码CodeSmith模板入门n基本语
11、法脚本标签代码标签n编写第一个模板,查看生产效果演示:演示:第一个模板第一个模板=0;i-)%标签:可以放置任意数标签:可以放置任意数量的代码在其中,但并不能直量的代码在其中,但并不能直接输出到模版中。接输出到模版中。标签:在模版中输出标签:在模版中输出一个字符串一个字符串CodeSmith模板进阶n生成实体类的需求类名:如果表名后面有“s”(如Books),则类名=表名-“s”;否则类名=表名。字段:首字母小写,并依据相应数据库中的类型设置字段类型和默认值。外键:外键字段名=外键对象名+“Id”usingSystem;usingSystem.Collections.Generic;using
12、System.Text;namespaceMyBookShop.ModelsSerializable()publicclassBookprivateintid;privatestringtitle=String.Empty;privatestringauthor=String.Empty;privatePublisherpublisher;privateCategorycategory;数据库访问组件n组件的引用n组件的使用ForeignKeyColumns:所有外键列的集合NonForeignKeyColumns:所有非外键列的集合NonKeyColumns:所有既不是主键又不是外键的列的集
13、合TableSchema/表的类型表的类型ColumnSchema/列的类型列的类型编写仅包含字段的实体类模板n编写模板设置参数为数据表添加模板代码和方法publicstringGetColumnName(ColumnSchemacolumn)if(column.IsForeignKeyMember)returncolumn.Name.Substring(0,column.Name.Length-2);returncolumn.Name;针对外键,去掉末尾的针对外键,去掉末尾的“Id”演示:演示:MyField设置参数为表格类型设置参数为表格类型文件名n控制生成的文件名我们的实体类都是以类名.
14、cs作为文件名,要达到这个目的,可以通过重载GetFileName方法实现代码publicoverridestringGetFileName()returnGetClassName(this.SourceTable)+.cs;如果不重写该方法,则保存时的文件名以模板名称作为默认文件名,如果不重写该方法,则保存时的文件名以模板名称作为默认文件名,以以TargetLanguage指定的类型确定后缀名指定的类型确定后缀名综合示例最终的实体类模板n在生成字段的基础上,添加属性的生成。n重载GetFileName方法,使默认保存的文件名为“类名.cs”。演示:演示:MyObject小结n只能使用C#语法编写模板么?n参数声明时,哪个属性标记参数的类型?n访问数据库的表,需要引用哪个组件?总结n验证码有哪几种实现方式?nCodeSmith代码生成的核心思想是什么?n在生成实体类的模板中,外键的处理应用了我们的哪个规则?n编写CodeSmith的模板之前,需要考虑清楚哪三部分内容?