《静态网页制作经典教程.ppt》由会员分享,可在线阅读,更多相关《静态网页制作经典教程.ppt(260页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、静态网页设计教程静态网页设计教程教学内容n学习情境一:搭建开发环境n学习情境二:系统对象与状态管理n学习情境三:站点导航控件与母版页n学习情境四:搭建系统框架n学习情境五:数据绑定与显示n学习情境六:数据录入与验证n学习情境七:数据更新于编辑n学习情境八:常用第三方工具与控件n学习情境九:用户控件与HTTPHANDLERn学习情境十:网站部署与定制学习情境一学习情境一学习情境一学习情境一搭建开发环境搭建开发环境搭建开发环境搭建开发环境课程地位PrevHTMLSQL BaseLogic JavaC#/WinFormsSTBProject1:ADO.Net+WinForms C/SADO.Net/
2、Three TierJavaScriptSQL AdvanceJava OOPProject2:B/S.Net/OOPJSPAjax/Web ServiceJSP/Servlet/JavaBean/Web ServiceStruts/Hibernate/Spring/AjaxASP.NetNTCProject3:Net/Java HR/CRM/OA/B2C B/S行业手册行业手册就业技能结构图本门课程目标学完本门课程后,你能够:n熟练使用VisualStudio开发环境开发ASP.NET应用程序n完成常见的数据操作任务n运用ASP.NET开发商业站点课程项目展示n网上书店演示图书列表图书列表数
3、字水印数字水印课程项目展示RSS发布新书列表发布新书列表预习检查n创建ASP.NET页面时,自动生成了哪几个文件?n使用ASP.NET做开发,是否一定要安装IIS?本章任务n初识ASP.NETq制作第一个ASP.NET页面q显示学员信息列表本章目标n掌握简单ASP.NET程序的开发步骤n掌握ASP.NET控件+事件的开发方式n会使用Label、TextBox、Button等简单的控件B/S概念回顾nB/S与C/S相比各有何优缺点?nB/S的典型应用场景有哪些?ASP.NET的特色与优势4-1n与浏览器无关n方便设置断点,易于调试n编译后执行,运行效率高n丰富的控件库n代码后置,逻辑分明ASP.
4、NET的特色与优势4-2n编译后执行,运行效率高_代码代码编译编译Microsoft中间语言中间语言(MSIL或或IL)JIT编译器编译器机器语言机器语言分别编译分别编译IL的每一部分的每一部分ASP.NET的特色与优势4-3n丰富的控件库q内置80多种控件q统计表明,采用新控件方式的编码,至少比早期减少70%的代码量使用纯使用纯JavaScript脚本方式编写脚本方式编写树形目录需要大量编码树形目录需要大量编码而使用而使用TreeView导航控件,无需导航控件,无需编写一行代码即可完成编写一行代码即可完成ASP.NET的特色与优势4-4n代码后置,将业务逻辑代码与显示逻辑分开ASPX页面页面
5、页面显示页面显示.aspx页面页面业务逻辑业务逻辑.cs文件文件程序员程序员页面设计人员页面设计人员成功案例5-1n因为ASP.NET具有诸多优势,越来越多的企业开始采用ASP.NET技术构建它们的网络应用系统。q戴尔电脑q当当书店q中华英才网q微软官方网站q.ASP.NET成功案例5-2http:/ n每个.aspx文件对应一个Page对象n.aspx与后台代码类(局部类)合并生成页面类nPage对象是页面类的实例n所有的.aspx文件(Web窗体页)都继承自System.Web.UI.Page类演示:新建页面演示:新建页面查看源视图nPage指令指明页面代码和后置代码所指明页面代码和后置代
6、码所使用的脚本语言使用的脚本语言设置是否自动调用网页事件设置是否自动调用网页事件,默认为,默认为true指定代码后置文件,该文件包指定代码后置文件,该文件包含此页面的局部类含此页面的局部类代码后置的类,局部类代码后置的类,局部类Page指令定义了指令定义了ASP.NET页用于编译和解析的属性。页用于编译和解析的属性。每个每个aspx页面只能有一个页面只能有一个Page指令指令页面输入输出控制nRequest对象q获得页面输入qURL传参qForm表单提交nResponse对象q在页面输出要显示的内容q重定向Request对象n结合JSP,列举页面间传递数据的几种方式?n如何获取传递过来的数据呢
7、?Request对象对象ServerVariables属性属性Form 属性属性Params属性属性QueryString属性属性获取通过获取通过URL路径传来路径传来的数据的数据获取通过表单提交传输获取通过表单提交传输的数据的数据获取获取Web服务器变量服务器变量的集合的集合以上三种方式传输的内容都以上三种方式传输的内容都可以使用该属性获取可以使用该属性获取Response 对象nResponse对象允许开发人员对当前页面的输出流进行操作Response.对象对象Redirect方法方法Write方法方法Response.Write(Hello,ACCP);直接在页面上输出内容直接在页面上输
8、出内容重定向到另外一个页面重定向到另外一个页面Response.Redirect(http:/);综合示例n获取并打印浏览器的信息q输出浏览器类型(IE/FireFox)q输出相关版本信息q输出客户端语言信息Request.ServerVariablesHTTP_USER_AGENT;/获取获取浏览器及版本浏览器及版本Request.ServerVariablesHTTP_ACCEPT_LANGUAGE;/获取获取浏览器语言浏览器语言演示示例演示示例5:获取并打印浏览器信息获取并打印浏览器信息数据传递nJSP页面中,如何获取用户输入的信息?q分两个页面进行处理,用户输入页面是一页,处理用户输入
9、的又是另一个页面。q提交给同一页面,通过特殊参数判断是回传的数据q通过Get、Post方式或者URL传递需要发送服务器的数据页内数据传递回回发发ASP.NETWeb页面页面控件控件1控件控件1用户页面用户页面操作操作Page.IsPostBack属性属性回传回传首次加载首次加载truefalse如何判断回发和首次加载?如何判断回发和首次加载?演示示例演示示例1:查询演示查询演示关键代码:验证回传nIsPostBack常放置于Page_Load方法中q用于首次加载页面时的初始化protectedvoidPage_Load(objectsender,EventArgse)if(Page.IsPos
10、tBack).跨页数据传递ASP.NETWeb页面页面1ASP.NETWeb页面页面2控件控件1控件控件2跨跨页页传传递递如何知道跨页发送如何知道跨页发送并获取传过来的数据?并获取传过来的数据?跨页数据传递nIsCrossPagePostBack,指示跨页回发是否包含该页nPreviousPage,获取向当前页面传输数据的页面PreviousPage属性属性页面页面2FindControl方法方法找到页面找到页面1的对象的对象根据控件名,获得控件对象根据控件名,获得控件对象演示示例演示示例2:跨页数据传递跨页数据传递关键代码n发出提交的页面n获取内容的页面if(Page.PreviousPag
11、e!=null)if(PreviousPage.IsCrossPagePostBack=true)this.lblShowURL.Text=您的查询条件为:您的查询条件为:+(TextBox)this.PreviousPage.FindControl(txtKeyWord).Text;通过通过PostBackUrl指定获取页指定获取页获取控件值获取控件值判断该页面的是否为其他页回传判断该页面的是否为其他页回传小结n绘图描述ASP.NET中页面的编译过程。n.aspx文件都继承自哪个类?nASP.NET2.0中,.aspx的类与对应的代码后置的类是什么关系?nASP.NET中,页内数据传递使用哪
12、个属性判断回传或者首次加载?状态管理nJSP中状态保持有哪几种方式?qsession、cookie等nASP.NET中状态保持ASP.NET状态保持状态保持SessionCookieApplication存储于服务器存储于服务器存储于客户端存储于客户端应用程序级别的状态保持应用程序级别的状态保持SessionnSession用于什么场合?n结合JSP中学过的知识,我们知道qSession保持当前用户状态信息q常用于用户登录、购物车等Session示例n第三波网上书店用户登录。q用户输入用户名和密码q检测用户名和密码是否输入合法q登录成功时,在Session中保存用户对象。演示示例演示示例3:第
13、三波网上书店的登录第三波网上书店的登录关键代码n登录代码n索引器q使用索引器,可以像数组一样处理Session对象Useruser=newUser();user.Id=0;user.UserName=txtloginId.Text;user.PassWord=txtLoginPwd.Text;SessionUser=user;Session的名称的名称要存储的对象要存储的对象JSP中中session.setAttribute(username,username)Cookie演示nCookie方式记录用户最后登录时间q当用户登录时,记录用户的登录时间q用户下次登录时,显示用户上次登录时间演示示例
14、演示示例4:增加增加Cookie的书店登录的书店登录关键代码n写入Cookie代码n读取Cookie代码HttpCookiehcCookie=newHttpCookie(UserName,“张三张三);Response.Cookies.Add(hcCookie);stringUserName=Request.CookiesUserName.Value;添加新的添加新的CookieApplication对象nApplication对象可以存储应用程序级的数据。q“Application”:应用程序q第一个用户访问站点时,应用程序启动,并创建一个Application对象。q创建成功后,整个应用程
15、序中都可以使用该对象。q除非应用程序关闭,否则对象一直存储在内存中。Application对象对应对象对应HttpApplication类,它定义类,它定义ASP.NET应用程序中的所有应用程序对象通用的方法、属性和事件。应用程序中的所有应用程序对象通用的方法、属性和事件。小结n请分别书写Session方式和Cookie方式保存用户登录状态的代码。q保存当前用户登录时间q保存登录用户名q编写读取Cookie中内容的代码Server 对象nServer对象是HttpServerUtility的一个实例,它提供对服务器上的方法和属性的访问。Server对象对象HtmlEncode方法和方法和Htm
16、lDecode方方法法Execute 方法和方法和 Transfer 方法方法UrlEncode方法和方法和UrlDecode方方法法MapPath方法方法取得文件的物理路径取得文件的物理路径执行另一个页面的脚本执行另一个页面的脚本将文本编码成可以在浏览器中可将文本编码成可以在浏览器中可正确浏览的格式正确浏览的格式URL编码和解码,类似与编码和解码,类似与JSP中的中的URLEncoder.encode综合示例n修改欢迎页q当用户未登录时转到登录页面q登录成功后转回欢迎页q在欢迎页面显示用户的信息q根据用户浏览器的语言,给予不同语言的欢迎辞(如:中文用“您好,!”,其他用“HELLO,.!”。
17、)演示示例演示示例6:新的欢迎页面新的欢迎页面总结n如果要显示在线人数,想想怎么做?q提示:在每次用户请求时记录人数,保存在什么位置比较合适?n简述ASP.NET中状态保持的三种方式,并说明适用范围?学习情境四学习情境四搭建系统框架搭建系统框架回顾2-1n三层结构都有哪三层?n上一章里我们学习了哪三种导航控件?回顾2-2stringsql=SELECTSubjectNameFROMSubject;SqlCommandcommand=newSqlCommand(sql,DBHelper.connection);DBHelper.connection.Open();SqlDataReaderdat
18、aReader=command.ExecuteReader();while(dataReader.Read()cboSubject.Items.Add(dataReaderSubjectName.ToString();未关闭未关闭ReaderdataReader.Close();未关闭连接未关闭连接DBHelper.connection.Close();DBHelper.connection.Dispose();预习检查模型层有哪些内容?数据访问层一般写哪些方法?本章任务n搭建网上书店的架构n实现书店的用户登录本章目标n会在ASP.NET中使用三层结构。n能够实现三层结构下的用户注册和登录。系
19、统架构n三层结构q表示层q业务逻辑层q数据访问层分层的理念:将相似的内容放到一起去处理,开发人员可以只关注分层的理念:将相似的内容放到一起去处理,开发人员可以只关注整个结构中的其中某一层,可以很容易的用新的实现来替换原有层整个结构中的其中某一层,可以很容易的用新的实现来替换原有层次的实现次的实现三层结构的经典案例:三层结构的经典案例:PetShopPetShop4.0n宠物商店q微软展示.NET企业开发的范例。q与Sun的PetStore的商业竞争。q一个小型的电子商务案例。q体现了微软推广的开发思想和设计理念。q分22个项目,经典的系统,从设计的思想到最好的编码,学习参考价值很高。演示:演示
20、:PetShop4.0PetShop4.0架构简介ASP.NETWebBLLDALFactoryOracleDALSQLServerDALIDALModel表表示示层层业务层业务层数数据据层层典型的三层结构典型的三层结构搭建第三波网络书店的模型层n模型层q表示层需要访问实体对象的属性值。q业务层需要通过实体对象处理业务逻辑。q数据层也需要通过实体对象读写数据库。q模型是数据载体。n命名q项目名:MyBookShopModelsq命名空间:MyBookShop.Modelsq类名:图书表Books图书类Bookq实体类通常冠以Serializable特性,以保证实体传输的可靠性外键的处理n数据库
21、中有主外键关系,模型层怎么表示?q比如用户表和状态表。q状态字段是用户表的外键。n两种方式:q为实体类添加状态id属性,存储状态id。q为实体类添加状态属性,存储状态对象。示例n用户类的模型q用户需要有登录名、密码、状态等属性q状态表存储状态名称q用户的状态属性使用状态对象publicUserStateUserStategetreturnthis.userState;setthis.userState=value;处理外键的代码Serializable()publicclassUser/字段字段publicUser()/构造函数构造函数/常见属性常见属性publicUserStateUserS
22、tate/用户状态用户状态-外键外键getreturnthis.userState;setthis.userState=value;小结n编写实体类UserRole并更新User类相关属性q类关系图如下答案:答案:UserRole类类数据访问层n数据访问层q所有与数据库交互的操作q数据表的增、删、查、改操作q数据访问层不做逻辑判断n命名q项目名:MyBookShopDALq命名空间:MyBookShop.DALq类名:图书表Books图书数据访问类BookService代码比较n比较两段代码代码1代码2n在每一个对象的数据库访问类中:q数据库连接反复出现q数据库连接打开和关闭反复出现q执行Sq
23、l语句的方法相似q返回记录集的方法相似根据面向对象思想,是否根据面向对象思想,是否可以减少这些重复劳动?可以减少这些重复劳动?DBHelper类n我们将常用方法提取出来,作为DBHelper类n该类包含了:建立数据库连接建立数据库连接执行执行Sql的方法的方法(存储过程(存储过程sql语句)语句)返回记录集返回记录集返回返回Reader返回结果返回结果创建数据访问层的类n创建UserService类qCreate方法qRetrieve方法qUpdate方法qDelete方法boolAddUser(Useruser)IListGetAllUsers()UserGetUserById(intid)
24、IListGetUsersBySql(stringsql)boolDeleteUserById(intid)boolUpdateUser(Useruser)增加一个用户的方法publicstaticboolAddUser(Useruser)stringsql=INSERTUSERS(loginid,loginpwd,name,address,phone,mail,userroleId,UserStateId)+VALUES(LoginId,LoginPwd,Name,Address,Phone,Mail,RoleId,UserStateId);SqlParameterpara=newSqlPa
25、rameternewSqlParameter(LoginId,user.LoginId),;DBHelper.ExecuteCommand(sql,para);returntrue;组合组合SQL语句语句参数赋值参数赋值调用调用DBHelper类中类中的方法进行处理的方法进行处理小结n模型层为什么要标记为可序列化?n模型层的作用?n数据访问层的功能?n编写User的数据访问类的查、改、删方法。示例:示例:User的数据库访问类的数据库访问类业务逻辑层n业务逻辑层q是表示层与数据访问层的桥梁,q负责逻辑的判断,业务处理、数据传递。q不在表示层访问数据库,数据更加安全。n命名q项目名:MyBook
26、ShopBLLq命名空间:MyBookShop.BLLq类名:图书表Books图书业务逻辑层类BookManager用户登录的业务逻辑方法publicstaticboolLogin(stringloginId,stringloginPwd,outUservalidUser)Useruser=UserService.GetUserByLoginId(loginId);if(user=null)validUser=null;returnfalse;if(user.LoginPwd=loginPwd)validUser=user;returntrue;elsevalidUser=null;/密码错误
27、密码错误returnfalse;表示层n表示层的设计给客户最直接的体验。q页面风格和布局,美观大方。q页面操作符合逻辑,讲究用户体验。q注意风格统一。表示层负责内容的展现和与用户的交互。表示层负责内容的展现和与用户的交互。可以进行变量范围的验证。可以进行变量范围的验证。不做业务逻辑判断。不做业务逻辑判断。不做与数据库交互的处理。不做与数据库交互的处理。用户管理模块n首先根据数据库创建模型层。q包括用户的实体类以及相关联的类。n创建数据访问层用户管理类。q包括增删查改方法。n设计相关页面,并编写事件代码。q新用户注册。q用户登录。q用户信息修改。n创建业务逻辑层处理类。q根据需要,添加相关方法。
28、示例1n用户登录q创建页面。q编写事件处理代码,包括验证输入。q创建业务逻辑层方法,调用数据访问层相关方法处理。演示示例:演示示例:用户登录用户登录用户注册的确认事件代码Useruser=newUser();user.LoginId=this.txtLoginId.Text;user.UserState=newUserState();user.UserState.Id=1;if(UserManager.AddUser(user)this.ltMain.Text=alert(注册成功!请继续购物注册成功!请继续购物);window.location=./default.aspx;elsethis
29、.ltMain.Text=alert(用户名已使用!请重新选择!用户名已使用!请重新选择!);实例化实例化User类类对类相关属性进行赋值对类相关属性进行赋值默认值,硬编码默认值,硬编码业务层进行相关判断和处理业务层进行相关判断和处理弹出脚本提示弹出脚本提示小技巧:在控件上输出脚本小技巧:在控件上输出脚本小结n编写图书模块相关实体类和数据层、业务层的类。q图书有id、作者、标题、分类、出版社、描述、ISBN(简化)。q出版社有id、名称。q分类有id、名称。q编写图书、出版社、分类的实体类。q编写图书的数据层增删查改方法。q编写图书业务层的查询所有的方法。演示示例:演示示例:图书模块相关类图书
30、模块相关类总结n数据访问层常见的方法有哪几种?n页面要显示一个表的内容,可否直接使用ADO.NET连接数据库,为什么?n业务逻辑层的方法来自哪部分的需求?学习情境五学习情境五数据绑定与显示数据绑定与显示回顾2-1nTreeView控件绑定数据的方式是什么?q指定DataSourceIDn数据访问层有哪四类常见方法?qC、R、U、Dn在ASP.NET中调用客户端脚本,有哪几种方法?q注册客户端脚本q页面输出脚本q控件的Text中输出脚本n下面是注册用户的部分代码,检查有什么问题。回顾2-2Useruser=newUser();user.LoginId=this.txtLoginId.Text;u
31、ser.LoginPwd=this.txtLoginPwd.Text;if(UserManager.LoginIdExists(user.LoginId)this.Page.ClientScript.RegisterStartupScript(this.GetType(),alert(用户名或者密码错误!用户名或者密码错误!););UserManager.AddUser(user);此处应该使用单引号此处应该使用单引号预习检查GridView控件有哪两种数据绑定方式?有哪几种数据源控件?本章任务n完成书籍分类维护模块q图书列表分页q可多选,实现多个图书分类的调整q高亮显示鼠标所在行(光棒效果)
32、q图书详细显示页面本章目标n能熟练使用GridView进行数据的查询与展示n熟练使用ObjectDataSource控件绑定业务逻辑层返回的对象数据展示n数据展示的两种实现方法使用数据源控件,可以实现快速开发使用数据源控件,可以实现快速开发手写手写代码实现代码实现简单简单设置实现设置实现ADO.NET数据数据源控件源控件Web服务器服务器数据库数据库展示数据展示数据什么是数据源控件?什么是数据源控件?数据源控件n快速实现多种常用的数据源进行展示和交互n快速完成对数据表增删改查操作n是ASP.NET2.0引入的一个新的数据抽象层学习过的学习过的数据源控件数据源控件“面包屑面包屑”导航控件使用的导
33、航控件使用的SiteMapDataSourceTreeView导航控件使用的导航控件使用的XmlDataSource数据源控件nVS2005内置的五种数据源控件qSqlDataSourceqAccessDataSourceqObjectDataSourceqXmlDataSourceqSiteMapDataSourceSqlDataSource允许访问支持允许访问支持ADO.NET数据提供程序的所有数据提供程序的所有数据源。可访问数据源。可访问ODBC、SQLServer等等ObjectDataSource可以可以对业务对象或其他返回数据对业务对象或其他返回数据的类执行特定的数据访问的类执行特
34、定的数据访问XmlDataSource可以对可以对XML文档执行特定访问,文档执行特定访问,包括物理访问和内存访问。包括物理访问和内存访问。SiteMapDataSource可以对站点地图可以对站点地图提供程序所存储的提供程序所存储的Web站点执行站点执行特定的站点地图数据访问特定的站点地图数据访问数据源控件n数据源控件类的层次结构图:Control类类普通数据源控件普通数据源控件层次化数据源控件层次化数据源控件ObjectDataSourceSqlDataSourceSiteMapDataSourceXMLDataSourceAccessDataSource所有数据源控件都派生于所有数据源控
35、件都派生于Control类类ObjectDataSource重要属性属性名称属性名称说明说明SelectMethod获取或设置由检索数据的方法或函数的名称。InsertMethod获取或设置插入数据的方法或函数的名称。UpdateMethod获取或设置由更新数据的方法或函数的名称。DeleteMethod获取或设置删除数据的方法或函数的名称。TypeName获取或设置ObjectDataSource对象表示的类的名称,即业务对象的类名。手写代码方式this.gvMain.DataSource=UserManager.GetAllUsers();this.gvMain.DataBind();获取
36、数据的方法获取数据的方法展示数据的控件展示数据的控件指定数据集合指定数据集合数据绑定方法数据绑定方法n注意:q数据源控件方式只要指定数据源id即可;qDataSource方式在指定完数据源后必须使用绑定方法。数据绑定控件n数据绑定控件可以用来展示和绑定数据q数据源控件不提供展示,数据绑定控件提供展示q数据绑定控件可以通过数据源控件绑定数据n数据绑定控件的层次结构小结n三层结构下,采用哪个数据源控件比较合适?n说明五种数据源控件各自的作用。图书分类管理n第三波网络书店的图书分类管理图书列表显示,显示标题和分类图书列表显示,显示标题和分类分页分页详情详情多选效果多选效果光棒效果光棒效果分类修改功能
37、分类修改功能数据展示 nJSP中如何显示列表信息?q读取数据q循环记录集,组合HTML代码(使用标签库或者硬编码)n.NET中的数据绑定控件q能够将控件绑定到一个数据结果集q能够使用模板自定义控件的布局和样式q提供用于处理和取消事件的方便模型GridView控件n使用GridView显示图书信息列表1、将GridView控件拖入页面。2、添加并指定ObjectDataSource数据源。3、编辑列,选择需要显示的字段,并可设置表头等。4、设置分页。5、运行,查看效果。演示示例:演示示例:图书列表图书列表绑定列nBoundField字段q表示数据绑定控件中作为文本显示的字段。q可设置表头、样式等
38、信息。qDataFormatString,可设置显示字段的格式。注:注:当当HtmlCode属性设置为属性设置为false,DataFormatString才有效才有效0:C0代表对应后面的第一个参数,这里就是绑定的字段所对应的值;代表对应后面的第一个参数,这里就是绑定的字段所对应的值;C是格式化标记,它可以将数字型的字段格式化为货币类型。是格式化标记,它可以将数字型的字段格式化为货币类型。绑定列nTemplateField字段q绑定中显示自定义内容的字段q有五种模板(标头、脚注、普通项、交替项、编辑模式)asp:TextBoxID=TextBox1runat=serverText=asp:L
39、abelID=Label1runat=serverText=绑定字段的方法,还可以使用绑定字段的方法,还可以使用Eval注意单引号的使用注意单引号的使用Eval和BindnEval方法是只读方法q该方法采用数据字段的值作为参数并将其作为字符串返回。q当对表达式操作时候,必须用Eval如q格式化nBind方法支持读/写功能q可以检索数据绑定控件的值并将任何更改提交回数据库。d:日期;:日期;m:月份;:月份;y:年份。可能格式化为:年份。可能格式化为“17/05/2008”。绑定列nButtonField字段q显示为数据绑定控件中的按钮qCommandName设置自定义命令(RowCommand
40、)protectedvoidgvBooks_RowCommand()if(e.CommandName=Select)intindex=Convert.ToInt32(e.CommandArgument);GridViewRowselectedRow=gvUser.Rowsindex;TableCellcontactName=selectedRow.Cells1;绑定列nCommandFieldq一个特殊字段,显示了用于在数据绑定控件中执行选择、编辑、插入或删除操作的命令按钮q自动生成命令,无须手写q对应数据源的增改查删方法nHyperLinkFieldq显示为超链接的字段q比如链接到详细页面设
41、置链接的路径格式设置链接的路径格式设定绑定的参数集合设定绑定的参数集合绑定列nImageField字段q为图像的字段q绑定到包含图像URL的数据源中的字段q指定DataImageUrlFieldnCheckBoxField字段q以复选框显示的布尔型字段q仅当数据源字段中有布尔型字段时使用此字段光棒效果protectedvoidgvDemo_RowDataBound(objectsender,GridViewRowEventArgse)if(e.Row.RowType=DataControlRowType.DataRow)e.Row.Attributes.Add(onmouseover,curr
42、entcolor=this.style.backgroundColor;this.style.backgroundColor=#6699ff);e.Row.Attributes.Add(onmouseout,this.style.backgroundColor=currentcolor);GridView数据数据行绑定事件行绑定事件判断数据行类型判断数据行类型当鼠标离开时当鼠标离开时数据行背景色还原数据行背景色还原添加属性(客户端):添加属性(客户端):当鼠标移过的时,数据行背当鼠标移过的时,数据行背景色变成蓝色景色变成蓝色多选效果functionGetAllCheckBox(CheckAll
43、)varitems=document.getElementsByTagName(input);for(i=0;iitems.length;i+)if(itemsi.type=checkbox)itemsi.checked=CheckAll.checked;获得页面上标签获得页面上标签为为Input的控件元素的控件元素判断控件元素类判断控件元素类型是否为复选框型是否为复选框图书分类管理n完成图书分类管理模块的功能q在页面相应位置放置下拉单(DropDownList)q设置下拉单的数据源,并配置相关属性q绑定数据源,使用ObjectDataSource控件q设置需要显示的字段(DataTextFi
44、eld属性)q设置值字段(DataValueField属性)q放置“修改”按钮,并编写单击事件的代码参考答案:参考答案:图书分类管理图书分类管理关键代码stringsb=String.Empty;for(inti=0;ithis.gvBooks.Rows.Count;i+)CheckBoxcb=(gvBooks.Rowsi.FindControl(chbSelect)asCheckBox;if(cb.Checked=true)sb+=(gvBooks.Rowsi.FindControl(lblId)asLabel).Text+,;stringcatagory=this.ddlCatagory.
45、SelectedItem.Value;ChangeCatagory(sb,catagory);/实现更新图书分类的方法实现更新图书分类的方法遍历行,找到选中的项遍历行,找到选中的项获得下拉单选中行的值获得下拉单选中行的值详细页面n配合图书列表中的链接项,完成图书的详细页面显示几个常用的字段显示几个常用的字段DetailsView控件n使用DetailsView控件完成图书详细信息的显示q配置数据源q定义数据方法-GetBookById(Int32id)q设置参数获取方法,通过参数获取q指定DetailsView的数据源为该数据源演示示例:演示示例:图书的详细页面图书的详细页面小结n默写实现全选
46、效果的javascript脚本n思路:q获得参数(多选框对象)q得到页面上所有的INPUT标签的集合q遍历该集合并将符合条件的对象选中状态改为参数的选中状态总结n数据源控件有哪几个?n可否使用ObjectDataSource绑定数据访问层返回的DataSet?为什么?n为绑定的行添加脚本事件的方法是什么?nDropDownList控件的哪个属性可获取当前选择的项?学习情境六学习情境六数据数据录入与验证录入与验证回顾2-1n数据展示有哪两种方式?q手写绑定q绑定数据源控件nEval和Bind的区别?qEval方法是静态(只读)方法,格式化显示,计算列等。qBind方法支持读/写功能,可修改回传服
47、务器。n下面是改变图书分类的部分代码,有什么问题?回顾2-2stringsb=String.Empty;for(inti=0;ithis.gvBooks.Rows.Count;i+)CheckBoxcb=(gvBooks.Rows(i).FindControl(chbSelect“)asCheckBox;if(cb.Checked=true)sb+=(gvBooks.Rowsi.FindControl(lblId)asLabel).Text+,;stringcatagory=this.ddlCatagory.SelectedItem;ChangeCatagory(sb,catagory);Ro
48、wsiSelectedValue或或SelectedItem.Value预习检查可使用哪个控件完成文件上传?有哪几种数据验证控件?本章任务n完善用户注册n完善图书管理模块中的图书信息修改验证控件验证控件可上传图片可上传图片可选择日期可选择日期本章目标n能熟练使用验证控件n熟练使用ObjectDataSource更新数据n会手工编写更新事件的方法有效性验证n用户注册时,输入了不合标准的信息,怎么办?q后台手写验证代码q使用javascript脚本进行验证nASP.NET提供了验证控件q轻松实现用户输入的验证,且与用户浏览器无关q由在客户端或服务器中运行的验证代码执行q多种验证控件,验证数据更加简
49、单方便页面回传,用户体验不好页面回传,用户体验不好不安全,与浏览器相关不安全,与浏览器相关验证控件的层次结构BaseValidator基础验证类基础验证类RequiredFieldValidatorCompareValidatorRegularExpressionValidatorRangeValidatorCustomValidatorBaseCompareValidatorLabelWebControl抽象类抽象类具体类具体类ValidationSummaryRequiredFieldValidatorn非空验证q用于验证用户输入是否为空q常与其他控件一起使用n常用属性属性名称属性名称说明
50、说明ControlToValidate验证的控件idText出错时的提示ErrorMessage提交给ValidationSummary的错误提示,当Text为空时,也会显示该错误信息RequiredFieldValidator演示n演示输入验证q如上页拖入并设置控件属性q按钮事件:在页面显示信息已提交!“q在Page_Load及按钮事件中设置断点q以调试模式运行,体会页面验证顺序q将IE设置为禁用脚本,继续验证this.lblMessage.Text=信息已提交!信息已提交!;页面并未提交到服务器执行,页面并未提交到服务器执行,验证在客户端进行验证在客户端进行演示示例:演示示例:验证控件的执