静态网页设计教程.ppt_第1页
静态网页设计教程.ppt_第2页
静态网页设计教程.ppt_第3页
静态网页设计教程.ppt_第4页
静态网页设计教程.ppt_第5页
已阅读5页,还剩255页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

静态网页设计教程,教学内容,学习情境一:搭建开发环境 学习情境二:系统对象与状态管理 学习情境三:站点导航控件与母版页 学习情境四:搭建系统框架 学习情境五:数据绑定与显示 学习情境六:数据录入与验证 学习情境七:数据更新于编辑 学习情境八:常用第三方工具与控件 学习情境九:用户控件与HTTPHANDLER 学习情境十:网站部署与定制,学习情境一,搭建开发环境,课程地位,就业技能结构图,本门课程目标,学完本门课程后,你能够: 熟练使用Visual Studio开发环境开发ASP.NET应用程序 完成常见的数据操作任务 运用ASP.NET开发商业站点,课程项目展示,网上书店演示,图书列表,数字水印,课程项目展示,RSS发布新书列表,预习检查,创建 ASP.NET页面时,自动生成了哪几个文件? 使用ASP.NET做开发,是否一定要安装IIS?,本章任务,初识ASP.NET 制作第一个ASP.NET页面 显示学员信息列表,本章目标,掌握简单 ASP.NET 程序的开发步骤 掌握 ASP.NET控件+事件的开发方式 会使用Label、TextBox、Button等简单的控件,B/S概念回顾,B/S 与 C/S 相比各有何优缺点? B/S 的典型应用场景有哪些?,ASP.NET的特色与优势4-1,与浏览器无关 方便设置断点,易于调试 编译后执行,运行效率高 丰富的控件库 代码后置,逻辑分明,ASP.NET的特色与优势4-2,编译后执行,运行效率高,_ _ _ _,代码,编译,Microsoft 中间语言 (MSIL 或 IL),JIT 编译器,机器语言,分别编译 IL 的每一部分,ASP.NET的特色与优势4-3,丰富的控件库 内置80多种控件 统计表明,采用新控件方式的编码,至少比早期减少70%的代码量,使用纯 JavaScript 脚本方式编写树形目录需要大量编码 而使用TreeView导航控件,无需编写一行代码即可完成,ASP.NET的特色与优势4-4,代码后置,将业务逻辑代码与显示逻辑分开,ASPX 页面,页面显示 .aspx页面,业务逻辑 .cs文件,程序员,页面设计人员,成功案例5-1,因为 ASP.NET 具有诸多优势,越来越多的企业开始采用ASP.NET技术构建它们的网络应用系统。 戴尔电脑 当当书店 中华英才网 微软官方网站 . .,ASP.NET成功案例5-2,/content/default.aspx,戴尔公司官方网站 网站是戴尔电脑直销的最主要渠道之一 每天有上千订单通过戴尔网站提交和处理,ASP.NET成功案例5-3,/mallhome/home/default.aspx,当当网 全球最大的中文网上书店 提供近百万种商品的在线销售,ASP.NET成功案例5-4,/index.aspx,中华英才网 网站日均浏览量超过1900万 拥有超过1360万个人注册用户 拥有超过1250万份有效简历 累计超过140万家企业注册会员 每天提供超过160万个有效职位,ASP.NET成功案例5-5,/en/us/default.aspx,微软公司官方网站,小结,列举2-3条ASP.NET的特色和优势。 为什么说ASP.NET应用程序运行效率高?,搭建开发环境,安装IIS并配置虚拟目录 IIS 是基于 Windows系统的Web 服务器的 ASP.NET应用程序的发布是基于IIS服务器的 IIS类似JSP中使用的Tomcat,提供了更为强大的功能,视频:IIS安装和配置视频,注意事项,单击“添加/删除Windows组件”,确保“应用程序服务器”处于选中状态,开发服务器,在VS中,内置了轻量级的Web服务器 Cassini 无须配置IIS、设置相应权限,Cassini运行时在状态栏的显示,可以查看开发服务器的状态信息,第一个ASP.NET应用程序,时间提示页面 在Visual Studio中新建一个网站 设置站点位置 拖入相关控件 编写事件处理方法 查看运行效果,演示示例:第一个ASP.NET应用程序,项目位置设置,新建网站时,可选择项目的位置,有多种选择,点击浏览可以更改项目位置,可视化的设计,双击Botton控件,到代码页,可以编写代码,与WinForms编程类似,点击“源”可看到HTML视图,与WinForms一样简单的控件+事件方式,基于控件+事件的编程,protected void btnOK_Click(object sender, EventArgs e) string greeting; switch(DateTime.Now.Hour) . . case 12: greeting = “嘿,0同学,吃中午饭了!“; break; . . string message = string.Format(greeting, txtName.Text.Trim( ); lblMessage.Text = message; ,Botton单击事件方法,通过Text属性直接获取控件值,无须像jsp中使用Get、Post等方式,查看解决方案组成,这是我们刚才页面的解决方案组成,存放数据的文件夹,自动创建的窗体文件,代码后置文件,站点配置文件,ASP.NET中,HTML代码和C#代码分别存储于不同的文件中,称作代码后置,编码方式,ASP.NET有两种编码方式:代码内嵌和代码后置 代码内嵌,HTML代码和C#代码交叉使用。,演示示例:代码内嵌展示,内嵌方式只有.aspx文件,体会ASP.NET的开发过程,显示学员信息 创建ShowStudents.aspx页面。 将学员信息表拖入页面 设置显示字段和标头 设置自动套用格式 添加分页功能,设置每页显示10条信息,演示示例2:学员信息列表,关键步骤:将表拖入页面,拖入表时,自动出现相关信息,使用服务器资源管理器,打开学员信息数据库,将Student表拖入页面的设计窗口内,关键步骤:设置字段和标题,设置Columns,可编辑显示字段,HeaderText设置列标题显示的内容,关键步骤:套用风格,选择自动套用格式,多种格式可选,关键步骤:设置分页,AllowPaging置为True打开分页功能,PageSize属性设置每页的显示数目,小结,在后置代码中获取用户在TextBox中输入的内容,使用的是哪个属性? 什么是代码后置? 设置每页显示的条数,使用了哪个属性?,总结,ASP.NET的优势有哪些? 画图描述ASP.NET工作原理。 建立一个ASP.NET工程有哪些步骤? ASP.NET代码开发有哪两种模式?,学习情境二,系统对象与状态管理,回顾,什么是代码后置? JSP中状态保持有哪几种方式? JSP中Session的写法,预习检查,Session有什么用处? .aspx页面继承自哪个类?,本章任务,实现用户登录功能 实现对用户浏览器的判断 实现页面数据的传递,本章目标,掌握页面间的数据传递技术 能用Session对象记录用户登录状态等信息 能使用Server对象查看客户端浏览器类型 会使用Response 对象和Request对象控制页面的输入输出,运行机制,回顾JSP的运行机制 客户端请求 后台处理(类Servlet) 返回客户端(HTML) ASP.NET的运行机制是什么呢?,ASP.NET运行机制,.aspx 文件,解析,后台编码类,生成,第二个请求 实例化,ASP.NET 引擎,页面类,实例化,处理和显示,现象:第一次获取网页较慢,第二次获取较快,系统对象,JSP和ASP.NET中的常见系统对象对比。,注意:JSP和ASP.NET中对象的大小写不同,Page对象,每个.aspx文件对应一个Page对象 .aspx与后台代码类(局部类)合并生成页面类 Page对象是页面类的实例 所有的.aspx文件(Web窗体页)都继承自System.Web.UI.Page类,演示:新建页面,查看源视图,Page指令,指明页面代码和后置代码所使用的脚本语言,设置是否自动调用网页事件 ,默认为true,指定代码后置文件,该文件包含此页面的局部类,代码后置的类,局部类, Page指令定义了 ASP.NET 页用于编译和解析的属性。 每个aspx页面只能有一个Page指令,页面输入输出控制,Request对象 获得页面输入 URL传参 Form表单提交 Response 对象 在页面输出要显示的内容 重定向,Request对象,结合JSP,列举页面间传递数据的几种方式? 如何获取传递过来的数据呢?,Request对象,ServerVariables 属性,Form 属性,Params 属性,QueryString属性,获取通过URL路径传来的数据,获取通过表单提交传输的数据,获取Web服务器变量的集合,以上三种方式传输的内容都可以使用该属性获取,Response 对象,Response 对象允许开发人员对当前页面的输出流进行操作,Response.对象,Redirect方法,Write方法,Response.Write(“Hello,ACCP“);,直接在页面上输出内容,重定向到另外一个页面,Response.Redirect(““);,综合示例,获取并打印浏览器的信息 输出浏览器类型(IE/FireFox) 输出相关版本信息 输出客户端语言信息,Request.ServerVariables“HTTP_USER_AGENT“; /获取浏览器及版本 Request.ServerVariables“HTTP_ACCEPT_LANGUAGE“; /获取浏览器语言,演示示例5:获取并打印浏览器信息,数据传递,JSP页面中,如何获取用户输入的信息? 分两个页面进行处理,用户输入页面是一页,处理用户输入的又是另一个页面。 提交给同一页面,通过特殊参数判断是回传的数据 通过Get、Post方式或者URL传递需要发送服务器的数据,页内数据传递,回发,ASP.NET Web页面,控件1,控件1,用户页面 操作,Page.IsPostBack属性,回传,首次加载,true,false,如何判断回发和首次加载?,演示示例1:查询演示,关键代码:验证回传,IsPostBack常放置于Page_Load方法中 用于首次加载页面时的初始化,protected void Page_Load(object sender, EventArgs e) if (Page.IsPostBack) . . ,跨页数据传递,ASP.NET Web页面1,ASP.NET Web页面2,控件1,控件2 ,跨 页 传 递,如何知道跨页发送 并获取传过来的数据?,跨页数据传递,IsCrossPagePostBack,指示跨页回发是否包含该页 PreviousPage,获取向当前页面传输数据的页面,PreviousPage 属性,页面2,FindControl 方法,找到页面1的对象,根据控件名,获得控件对象,演示示例2:跨页数据传递,关键代码,发出提交的页面 获取内容的页面,if (Page.PreviousPage!=null) if(PreviousPage.IsCrossPagePostBack = true) this.lblShowURL.Text = “您的查询条件为:“ + (TextBox)this.PreviousPage.FindControl(“txtKeyWord“).Text; ,通过PostBackUrl指定获取页,获取控件值,判断该页面的是否为其他页回传,小结,绘图描述ASP.NET中页面的编译过程。 .aspx文件都继承自哪个类? ASP.NET2.0中,.aspx的类与对应的代码后置的类是什么关系? ASP.NET中,页内数据传递使用哪个属性判断回传或者首次加载?,状态管理,JSP中状态保持有哪几种方式? session、cookie等 ASP.NET中状态保持,ASP.NET 状态保持,Session,Cookie,Application,存储于服务器,存储于客户端,应用程序级别的状态保持,Session,Session用于什么场合? 结合JSP中学过的知识,我们知道 Session保持当前用户状态信息 常用于用户登录、购物车等,Session示例,第三波网上书店用户登录。 用户输入用户名和密码 检测用户名和密码是否输入合法 登录成功时,在Session中保存用户对象。,演示示例3:第三波网上书店的登录,关键代码,登录代码 索引器 使用索引器 ,可以像数组一样处理Session对象,User user = new User(); user.Id = 0; user.UserName = txtloginId.Text; user.PassWord = txtLoginPwd.Text; Session“User“ = user;,Session的名称,要存储的对象,JSP中session.setAttribute(“username“,username),Cookie演示,Cookie方式记录用户最后登录时间 当用户登录时,记录用户的登录时间 用户下次登录时,显示用户上次登录时间,演示示例4:增加Cookie的书店登录,关键代码,写入Cookie代码 读取Cookie代码,HttpCookie hcCookie = new HttpCookie(“UserName“, “张三“); Response.Cookies.Add(hcCookie);,string UserName=Request.Cookies“UserName“.Value;,添加新的Cookie,Application对象,Application对象可以存储应用程序级的数据。 “Application”:应用程序 第一个用户访问站点时,应用程序启动,并创建一个Application对象。 创建成功后,整个应用程序中都可以使用该对象。 除非应用程序关闭,否则对象一直存储在内存中。,Application对象对应HttpApplication类,它定义 ASP.NET 应用程序中的所有应用程序对象通用的方法、属性和事件。,小结,请分别书写Session方式和Cookie方式保存用户登录状态的代码。 保存当前用户登录时间 保存登录用户名 编写读取Cookie中内容的代码,Server 对象,Server对象是HttpServerUtility的一个实例,它提供对服务器上的方法和属性的访问。,Server对象,HtmlEncode方法和 HtmlDecode方法,Execute 方法和 Transfer 方法,UrlEncode方法和 UrlDecode方法,MapPath方法,取得文件的物理路径,执行另一个页面的脚本,将文本编码成可以在浏览器中可正确浏览的格式,URL编码和解码,类似与JSP中的URLEncoder.encode,综合示例,修改欢迎页 当用户未登录时转到登录页面 登录成功后转回欢迎页 在欢迎页面显示用户的信息 根据用户浏览器的语言,给予不同语言的欢迎辞(如:中文用“您好, !”,其他用“HELLO, .!”。),演示示例6:新的欢迎页面,总结,如果要显示在线人数,想想怎么做? 提示:在每次用户请求时记录人数,保存在什么位置比较合适? 简述ASP.NET中状态保持的三种方式,并说明适用范围?,学习情境四,搭建系统框架,回顾2-1,三层结构都有哪三层? 上一章里我们学习了哪三种导航控件?,回顾2-2,string sql = “SELECT SubjectName FROM Subject“; SqlCommand command = new SqlCommand(sql, DBHelper.connection); DBHelper.connection.Open(); SqlDataReader dataReader = command.ExecuteReader(); while (dataReader.Read( ) cboSubject.Items.Add(dataReader“SubjectName“.ToString(); ,未关闭 Reader dataReader.Close();,未关闭连接 DBHelper.connection.Close(); DBHelper.connection.Dispose();,预习检查,模型层有哪些内容? 数据访问层一般写哪些方法?,本章任务,搭建网上书店的架构 实现书店的用户登录,本章目标,会在 ASP.NET 中使用三层结构。 能够实现三层结构下的用户注册和登录。,系统架构,三层结构 表示层 业务逻辑层 数据访问层,分层的理念:将相似的内容放到一起去处理,开发人员可以只关注整个结构中的其中某一层,可以很容易的用新的实现来替换原有层次的实现,三层结构的经典案例:PetShop,PetShop4.0,宠物商店 微软展示.NET企业开发的范例。 与Sun的PetStore的商业竞争。 一个小型的电子商务案例。 体现了微软推广的开发思想和设计理念。 分22个项目,经典的系统,从设计的思想到最好的编码,学习参考价值很高。,演示:PetShop4.0,PetShop4.0架构简介,ASP.NET Web,BLL,DALFactory,OracleDAL,SQLServerDAL,IDAL,Model,表示层,业务层,数据层,典型的三层结构,搭建第三波网络书店的模型层,模型层 表示层需要访问实体对象的属性值。 业务层需要通过实体对象处理业务逻辑。 数据层也需要通过实体对象读写数据库。 模型是数据载体。 命名 项目名:MyBookShopModels 命名空间:MyBookShop.Models 类名:图书表Books图书类Book 实体类通常冠以Serializable特性,以保证实体传输的可靠性,外键的处理,数据库中有主外键关系,模型层怎么表示? 比如用户表和状态表。 状态字段是用户表的外键。 两种方式: 为实体类添加状态id属性,存储状态id。 为实体类添加状态属性,存储状态对象。,示例,用户类的模型 用户需要有登录名、密码、状态等属性 状态表存储状态名称 用户的状态属性使用状态对象,public UserState UserState get return this.userState; set this.userState = value; ,处理外键的代码,Serializable() public class User /字段 public User() /构造函数 /常见属性 public UserState UserState/用户状态-外键 get return this.userState; set this.userState = value; ,小结,编写实体类UserRole并更新User类相关属性 类关系图如下,答案:UserRole类,数据访问层,数据访问层 所有与数据库交互的操作 数据表的增、删、查、改操作 数据访问层不做逻辑判断 命名 项目名:MyBookShopDAL 命名空间:MyBookShop.DAL 类名:图书表Books图书数据访问类BookService,代码比较,比较两段代码 代码1 代码2 在每一个对象的数据库访问类中: 数据库连接反复出现 数据库连接打开和关闭反复出现 执行Sql语句的方法相似 返回记录集的方法相似,根据面向对象思想,是否可以减少这些重复劳动?,DBHelper类,我们将常用方法提取出来,作为DBHelper类 该类包含了:,建立数据库连接,执行Sql的方法 (存储过程sql语句),返回记录集,返回Reader,返回结果,创建数据访问层的类,创建UserService类 Create方法 Retrieve方法 Update方法 Delete方法,bool AddUser(User user),IList GetAllUsers( ) User GetUserById(int id) IList GetUsersBySql(string sql),bool DeleteUserById(int id),bool UpdateUser(User user),增加一个用户的方法,public static bool AddUser(User user) string sql = “INSERT USERS (loginid, loginpwd, name, address, phone, mail, userroleId,UserStateId)“ + “VALUES (LoginId,LoginPwd,Name,Address,Phone,Mail, RoleId,UserStateId)“; SqlParameter para = new SqlParameter new SqlParameter(“LoginId“,user.LoginId), ; DBHelper.ExecuteCommand(sql, para); return true; ,组合SQL语句,参数赋值,调用DBHelper类中的方法进行处理,小结,模型层为什么要标记为可序列化? 模型层的作用? 数据访问层的功能? 编写User的数据访问类的查、改、删方法。,示例:User的数据库访问类,业务逻辑层,业务逻辑层 是表示层与数据访问层的桥梁, 负责逻辑的判断,业务处理、数据传递。 不在表示层访问数据库,数据更加安全。 命名 项目名:MyBookShopBLL 命名空间:MyBookShop.BLL 类名:图书表Books图书业务逻辑层类BookManager,用户登录的业务逻辑方法,public static bool Login(string loginId, string loginPwd, out User validUser) User user = UserService.GetUserByLoginId(loginId); if (user = null) validUser = null; return false; if (user.LoginPwd = loginPwd) validUser = user; return true; else validUser = null; /密码错误 return false; ,表示层,表示层的设计给客户最直接的体验。 页面风格和布局,美观大方。 页面操作符合逻辑,讲究用户体验 。 注意风格统一。,表示层负责内容的展现和与用户的交互。 可以进行变量范围的验证。 不做业务逻辑判断。 不做与数据库交互的处理。,用户管理模块,首先根据数据库创建模型层。 包括用户的实体类以及相关联的类。 创建数据访问层用户管理类。 包括增删查改方法。 设计相关页面,并编写事件代码。 新用户注册。 用户登录。 用户信息修改。 创建业务逻辑层处理类。 根据需要,添加相关方法。,示例1,用户登录 创建页面。 编写事件处理代码,包括验证输入。 创建业务逻辑层方法,调用数据访问层相关方法处理。,演示示例:用户登录,用户注册的确认事件代码, User user = new User(); user.LoginId = this.txtLoginId.Text; user.UserState = new UserState(); user.UserState.Id = 1; if (UserManager.AddUser(user) this.ltMain.Text = “alert(注册成功!请继续购物 ); window.location=/default.aspx“; else this.ltMain.Text = “alert(用户名已使用!请重新选择!) “; ,实例化User类,对类相关属性进行赋值,默认值,硬编码,业务层进行相关判断和处理,弹出脚本提示 小技巧:在控件上输出脚本,小结,编写图书模块相关实体类和数据层、业务层的类。 图书有id、作者、标题、分类、出版社、描述、ISBN(简化)。 出版社有id、名称。 分类有id、名称。 编写图书、出版社、分类的实体类。 编写图书的数据层增删查改方法。 编写图书业务层的查询所有的方法。,演示示例:图书模块相关类,总结,数据访问层常见的方法有哪几种? 页面要显示一个表的内容,可否直接使用ADO.NET连接数据库,为什么? 业务逻辑层的方法来自哪部分的需求?,学习情境五,数据绑定与显示,回顾2-1,TreeView控件绑定数据的方式是什么? 指定DataSourceID 数据访问层有哪四类常见方法? C、R、U、D 在ASP.NET中调用客户端脚本,有哪几种方法? 注册客户端脚本 页面输出脚本 控件的Text中输出脚本,下面是注册用户的部分代码,检查有什么问题。,回顾2-2,User user = new User( ); user.LoginId = this.txtLoginId.Text; user.LoginPwd = this.txtLoginPwd.Text; if (UserManager.LoginIdExists(user.LoginId) this.Page.ClientScript.RegisterStartupScript(this.GetType( ), “, “alert(“用户名或者密码错误!“);“); UserManager.AddUser(user);,此处应该使用单引号,预习检查,GridView控件有哪两种数据绑定方式? 有哪几种数据源控件?,本章任务,完成书籍分类维护模块 图书列表分页 可多选,实现多个图书分类的调整 高亮显示鼠标所在行(光棒效果) 图书详细显示页面,本章目标,能熟练使用GridView进行数据的查询与展示 熟练使用ObjectDataSource控件绑定业务逻辑层返回的对象,数据展示,数据展示的两种实现方法,使用数据源控件,可以实现快速开发,手写 代码实现,简单 设置实现,数据 源控件,Web服务器,数据库,展示数据,什么是数据源控件?,数据源控件,快速实现多种常用的数据源进行展示和交互 快速完成对数据表增删改查操作 是ASP.NET2.0引入的一个新的数据抽象层,学习过的 数据源控件,“面包屑”导航控件使用的 SiteMapDataSource,TreeView导航控件使用的 XmlDataSource,数据源控件,VS2005内置的五种数据源控件 SqlDataSource AccessDataSource ObjectDataSource XmlDataSource SiteMapDataSource,SqlDataSource允许访问支持 ADO.NET数据提供程序的所有 数据源。可访问ODBC、 SQL Server等,ObjectDataSource可以 对业务对象或其他返回数据 的类执行特定的数据访问,XmlDataSource可以对 XML文档执行特定访问, 包括物理访问和内存访问。,SiteMapDataSource可以对站点地图 提供程序所存储的Web站点执行 特定的站点地图数据访问,数据源控件,数据源控件类的层次结构图:,Control类,普通数据源控件,层次化数据源控件,ObjectDataSource,SqlDataSource,SiteMapDataSource,XMLDataSource,AccessDataSource,所有数据源控件都派生于 Control类,ObjectDataSource重要属性,手写代码方式,this.gvMain.DataSource = UserManager.GetAllUsers( ); this.gvMain.DataBind( );,获取数据的方法,展示数据的控件,指定数据集合,数据绑定方法,注意: 数据源控件方式只要指定数据源id即可; DataSource方式在指定完数据源后必须使用绑定方法。,数据绑定控件,数据绑定控件可以用来展示和绑定数据 数据源控件不提供展示,数据绑定控件提供展示 数据绑定控件可以通过数据源控件绑定数据 数据绑定控件的层次结构,小结,三层结构下,采用哪个数据源控件比较合适? 说明五种数据源控件各自的作用。,图书分类管理,第三波网络书店的图书分类管理,图书列表显示,显示标题和分类,分页,详情,多选效果,光棒效果,分类修改功能,数据展示,JSP中如何显示列表信息? 读取数据 循环记录集,组合HTML代码(使用标签库或者硬编码) .NET中的数据绑定控件 能够将控件绑定到一个数据结果集 能够使用模板自定义控件的布局和样式 提供用于处理和取消事件的方便模型,GridView控件,使用GridView显示图书信息列表 1、将GridView控件拖入页面。 2、添加并指定ObjectDataSource数据源。 3、编辑列,选择需要显示的字段,并可设置表头等。 4、设置分页。 5、运行,查看效果。,演示示例: 图书列表,绑定列,BoundField字段 表示数据绑定控件中作为文本显示的字段。 可设置表头、样式等信息。 DataFormatString,可设置显示字段的格式。,注: 当HtmlCode属性设置为false, DataFormatString才有效,0:C,0代表对应后面的第一个参数,这里就是绑定的字段所对应的值; C是格式化标记,它可以将数字型的字段格式化为货币类型。,绑定列,TemplateField字段 绑定中显示自定义内容的字段 有五种模板(标头、脚注、普通项、交替项、编辑模式), ,绑定字段的方法,还可以使用Eval,注意单引号的使用,Eval和Bind,Eval 方法是只读方法 该方法采用数据字段的值作为参数并将其作为字符串返回。 当对表达式操作时候,必须用Eval 如 格式化 Bind 方法支持读/写功能 可以检索数据绑定控件的值并将任何更改提交回数据库。,d:日期;m:月份;y:年份。可能格式化为“17/05/2008”。,绑定列,ButtonField字段 显示为数据绑定控件中的按钮 CommandName设置自定义命令(RowCommand),protected void gvBooks_RowCommand() if (e.CommandName = “Select“) int index = Convert.ToInt32(e.CommandArgument); GridViewRow selectedRow = gvUser.Rowsindex; TableCell contactName = selectedRow.Cells1; ,绑定列,CommandField 一个特殊字段,显示了用于在数据绑定控件中执行选择、编辑、插入或删除操作的命令按钮 自动生成命令,无须手写 对应数据源的增改查删方法 HyperLinkField 显示为超链接的字段 比如链接到详细页面,设置链接的路径格式,设定绑定的参数集合,绑定列,ImageField字段 为图像的字段 绑定到包含图像 URL 的数据源中的字段 指定DataImageUrlField CheckBoxField字段 以复选框显示的布尔型字段 仅当数据源字段中有布尔型字段时使用此字段,光棒效果,protected void gvDemo_RowDataBound(object sender, GridViewRowEventArgs e) if (e.Row.RowType = DataControlRowType.DataRow) e.Row.Attributes.Add(“onmouseover“, “currentcolor=this.style.backgroundColor;this.style.bac kgroundColor=#6699ff“); e.Row.Attributes.Add(“onmouseout“, “this.style.backgroundColor=currentcolor“); ,GridView数据 行绑定事件,判断数据行类型,当鼠标离开时 数据行背景色还原,添加属性(客户端): 当鼠标移过的时,数据行背景色变成蓝色,多选效果,function GetAllCheckBox(CheckAll) var items = document.getElementsByTagName(“input“); for(i=0; iitems.length;i+) if(itemsi.type=“checkbox“) itemsi.checked = CheckAll.checked; ,获得页面上标签 为Input的控件元素,判断控件元素类 型是否为复选框,图书分类管理,完成图书分类管理模块的功能 在页面相应位置放置下拉单( DropDownList ) 设置下拉单的数据源,并配置相关属性 绑定数据源,使用ObjectDataSource控件 设置需要显示的字段(DataTextField属性) 设置值字段(DataValueField属性) 放置“修改”按钮,并编写单击事件的代码,参考答案: 图书分类管理,关键代码,string sb =String.Empty; for (int i = 0; i this.gvBooks.Rows.Count; i+) CheckBox cb = (gvBooks.Rowsi.FindControl(“chbSelect“) as CheckBox; if (cb.Checked = true) sb += (gvBooks.Rowsi.FindControl(“lblId“) as Label).Text+“,“; string catagory = this.ddlCatagory.SelectedItem.Value; ChangeCatagory(sb, catagory); /实现更新图书分类的方法,遍历行,找到选中的项,获得下拉单选中行的值,详细页面,配合图书列表中的链接项,完成图书的详细页面,显示几个常用的字段,DetailsView控件,使用DetailsView控件完成图书详细信息的显示 配置数据源 定义数据方法- GetBookById(Int32 id) 设置参数获取方法,通过参数获取 指定DetailsView的数据源为该数据源,演示示例:图书的详细页面,小结,默写实现全选效果的javascript脚本 思路: 获得参数(多选框对象) 得到页面上所有的INPUT标签的集合 遍历该集合并将符合条件的对象选中状态改为参数的选中状态,总结,数据源控件有哪几个? 可否使用ObjectDataSource绑定数据访问层返回的DataSet?为什么? 为绑定的行添加脚本事件的方法是什么? DropDownList控件的哪个属性可获取当前选择的项?,学习情境六,数据录入与验证,回顾2-1,数据展示有哪两种方式? 手写绑定 绑定数据源控件 Eval和Bind的区别? Eval 方法是静态(只读)方法,格式化显示,计算列等。 Bind 方法支持读/写功能,可修改回传服务器。,下面是改变图书分类的部分代码,有什么问题?,回顾2-2,string sb =String.Empty; for (int i = 0; i this.gvBooks.Rows.Count; i+) CheckBox cb = (gvBooks.Rows(i).FindControl(“chbSelect“) as CheckBox; if (cb.Checked = true) sb += (gvBooks.Rowsi.FindControl(“lblId“) as Label).Text+“,“; string catagory = this.ddlCatagory.SelectedItem; ChangeCatagory(sb, catagory);,Rowsi,SelectedValue或 SelectedItem.Value,预习检查,可使用哪个控件完成文件上传? 有哪几种数据验证控件?,本章任务,完善用户注册 完善图书管理模块中的图书信息修改,验证控件,可上传图片,可选择日期,本章目标,能熟练使用验证控件 熟练使用ObjectDataSource更新数据 会手工编写更新事件的方法,有效性验证,用户注册时,输入了不合标准的信息,怎么办? 后台手写验证代码 使用javascript脚本进行验证 ASP.NET提供了验证控件 轻松实现用户输入的验证,且与用户浏览器无关 由在客户端或服务器中运行的验证代码执行 多种验证控件,验证数据更加简单方便,页面回传,用户体验不好,不安全,与浏览器相关,验证控件的层次结构,BaseValidator 基础验证类,RequiredFieldValidator,CompareValidator,RegularExpressionValidator,RangeValidator,CustomValidator,BaseCompareValidator,Label,WebControl,抽象类,具体类,ValidationSummary,RequiredFieldValidator,非空验证 用于验证用户输入是否为空 常与其他控件一起使用 常用属性,RequiredFieldValidator演示,演示输入验证 如上页拖入并设置控件属性 按钮事件:在页面显示 “信息已提交!“ 在Page_Load及按钮事件中设置断点 以调试模式运行,体会页面验证顺序 将IE设置为禁用脚本,继续验证,this.lblMessage.Text = “信息已提交!“;,页面并未提交到服务器执行,验证在客户端进行,演示示例: 验证控件的执行,当IE设置为禁用脚本时,页面发生回传,验证没有发生,Page.IsValid,修改按钮事件: Page.IsValid指示页面验证是否成功 用于客户端验证失败情况下 更加安全,if (Page.IsValid) this.lblMessage.Text = “信息已提交!“; ,判断页面是否经过验证,CompareValidator,CompareValidator用于比较控件的值 注册时,密码需要输入两次,并且一致 付款时,金额需大于0 常用属性,RangeValidator,RangeValidator用于范围的验证 验证生日(小于当前日期) 预定卡拉OK(一周内) 常用属性,电子邮件的验证,电子邮件怎么验证? 没有大小可比 没有范围之分 电子邮件的规则是: 必须包含一个并且只有一个符号“” 第一个字符不得是“”或者“.” 不允许出现“.”或者. 结尾不得是字符“”或者“.”,,可使用正则表达式,正则表达式,用某种模式去匹配一类字符串的一个公式 一类字符串:电话号码、电子邮件地址 . 模式:规则 公式:表示规则的一段文字 匹配:根据表达式去对比验证规则,例子: “”可匹配字符串开始。那么表达式: “正则” 可匹配的下列字符串中的那一种?,正则表达式,名不正则言不顺,RegularExpressionValidator,应用正则表达式作为进行验证的控件。 电子邮件 身份证号 . . 常用属性 ValidationExpression属性:设置要匹配的正则表达式,CustomValidator,自定义验证 可以手写js脚本进行客户端验证脚本 也可以编写服务器端的验证事件 或者联合两种方式验证,更安全 常用属性,ValidationSummary,验证报告控件 该控件并不对窗体的输入进行验证 它可以将验证错误汇总在一处统一显示 显示的内容是其他控件的ErrorMessage 常用属性 ShowMessageBox,指示是否显示弹出的提示消息 ShowSummary,指示是否显示该报告内容,用于显示提示消息的时候 为避免多处提示验证错误信息,可将验证控件的Text属性设置为“ * ”号,现场编程,完善用户注册功能 使用验证控件的验证方式 所有输入都不可为空 两次输入密码一致 Email需要格式正确 使用弹出窗口的提示方式,演示示例: 采用验证控件的用户注册,Calendar,日历控件 在Web页面上放置的一个可选日期的日历控件 方便了用户对于日期的输入 日历控件的使用 将控件拖入页面 设置控件相关属性 设置事件,并添加代码 运行检查效果,演示示例: 日历控件的使用,Calendar,日历控件的常用属性和事件,Calendar (JS版),能否在用户选择日期时,不刷新页面? JS版的日历控件 美观 页面无刷新 网上可免费下载 一般都提供使用教程,My97DatePicker日历控件,My97DatePicker,比较不错的js版日历控件 同时支持IE和Firefox 界面美观 功能强大,设置方便 目录结构,存放语言的文件夹,存放皮肤相关文件,日期库主文件,主配置文件,修改默认风格等,导入文件,在调用的页面需要引入该文件,使用方式,使用方式: 将整个文件夹放置于网站跟目录 页面中添加WdatePicker.js的引用 在设置日期的控件上添加样式和事件,class=“Wdate“ onFocus=“new WdatePicker(this,%Y-%M-%D %h:%m,true,default)“,指定js文件路径,演示示例: My97DatePicker的使用,FileUpload,文件上传控件 可将图片等文件上传到服务器 演示使用方法 如图设置控件 添加事件方法 运行,演示示例: 文件上传控件的使用,部分代码,fulFile.SaveAs(“C:“ + fulFile.FileName); lblFile.Text = “上传的文件名为:“ + fulFile.FileName + “ + “文件大小:“ + fulFile.PostedFile.ContentLength + “kb“ + “文件类型:“ + fulFile

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论