ASP.NET程序设计案例教程 教学课件 ppt 作者 李锡辉 lf201112 第6章

上传人:E**** 文档编号:89352020 上传时间:2019-05-23 格式:PPT 页数:121 大小:534.50KB
返回 下载 相关 举报
ASP.NET程序设计案例教程 教学课件 ppt 作者 李锡辉 lf201112 第6章_第1页
第1页 / 共121页
ASP.NET程序设计案例教程 教学课件 ppt 作者 李锡辉 lf201112 第6章_第2页
第2页 / 共121页
ASP.NET程序设计案例教程 教学课件 ppt 作者 李锡辉 lf201112 第6章_第3页
第3页 / 共121页
ASP.NET程序设计案例教程 教学课件 ppt 作者 李锡辉 lf201112 第6章_第4页
第4页 / 共121页
ASP.NET程序设计案例教程 教学课件 ppt 作者 李锡辉 lf201112 第6章_第5页
第5页 / 共121页
点击查看更多>>
资源描述

《ASP.NET程序设计案例教程 教学课件 ppt 作者 李锡辉 lf201112 第6章》由会员分享,可在线阅读,更多相关《ASP.NET程序设计案例教程 教学课件 ppt 作者 李锡辉 lf201112 第6章(121页珍藏版)》请在金锄头文库上搜索。

1、,第6章 模块5 会员购物管理,6.1 【任务12】购物车实现 6.2 【任务13】会员购物留言,【本章提要】 本章以校园在线超市系统中会员购物管理模块的实现为中心,通过DataList数据绑定控件和会话状态管理,阐述了购物车的实现过程;通过介绍ADO.NET调用存储过程和Repeater绑定控件的使用方法,实现会员购物留言的功能。,【学习目标】 掌握DataList控件绑定数据和分页功能的实现。 掌握会话对象Session的用法。 掌握ADO.NET调用存储过程的实现。 掌握Repeater控件绑定数据的实现。,任务描述 在校园在线超市案例中,会员若看到中意的商品,可以放到自己的购物车中,并

2、可以查看购物车已经选购到的商品。,6.1 【任务12】购物车实现,必备知识 知识1 DataList控件 前面已经讲到,GridView控件用来显示数据源的多条记录,设计者不需要在界面文件中书写代码,就能轻松地用GridView进行显示数据、分页、排序、编辑、删除等操作。对于显示多条记录,ASP.NET 2.0提供了DataList 和Repeater控件可以更好地实现自定义功能。,DataList使用模板来显示内容,而不是像在GridView里那样使用BoundFields、CheckBoxFields、ButtonFields等。DataList允许每一行显示多条记录,可以使用HTML 表

3、对应用模板项的呈现方式进行布局(见表6-1),来控制各个表单元格的顺序、方向和列数。,表6-1 DataList控件布局选项,1DataList控件中显示数据 使用DataList控件的方法是在窗体的设计界面添加DataList控件,在后台代码文件中绑定其数据源。下面通过实例说明DataList控件的使用方法。 【例6-1】 使用DataList显示数据。 本例中使用了具有DataList控件特色显示数据的方法,分列显示校园在线超市中最新商品的图片及相关资料,如图6-1所示。,图6-1 DataList显示商品信息界面效果,界面文件代码: /, , 当前价格: 元 td align=“cent

4、er“ colspan=“3“,style=“width: 207px“ 详细 购买 ,要实现页面数据的绑定,需要为DataList控件指定数据源,其绑定方式与GridView控件的数据绑定基本一致。代码如下: protected void DataListBind() string connstr =,ConfigurationManager.ConnectionStrings“SMDBConnStr“.ConnectionString; SqlConnection sqlConn = new SqlConnection(connstr); sqlConn.Open(); string st

5、r = “select * from t_ware “; SqlDataAdapter da = new SqlDataAdapter(str, sqlConn);,DataSet ds = new DataSet(); da.Fill(ds, “ware“); DltNewWare.DataSource =ds.Tables“ware“.DefaultView; DltNewWare.DataBind(); sqlConn.Close(); ,2. DataList控件分页实现 当DataList中显示的记录较多时,页面上就需要分页显示。ASP.NET2.0提供的DataList和Repea

6、ter控件不带分页功能。.NET提供的GridView和FormView控件提供的分页功能是基于PagedDataSource类实现的,使用该类同样也可以实现DataList和Repeater控件的分页显示。PagedDataSource类与分页相关的主要属性如下: AllowPaging:获取或设置是否启用分页的值。 CurrentPageIndex:获取或设置当前页的索引。 DataSourceCount:获取数据源中的项数。, PageSize:获取或设置要在单页上显示的项数。 【例6-2】 通过对【例6-1】的数据源使用PageDataSource类实现DataList的分页方法。 使

7、用DataList控件实现数据分页的效果如图6-2所示。 首先构建一个数据源,连接数据库后填充到数据集。创建PageDataSource类对象创建分页数据源对象实例pds,使之等于数据集中的表,并设置允许分页。实现代码: protected void DataListBind() string connstr =,图6-2 DataList数据分页效果,ConfigurationManager.ConnectionStrings“SMDBConnStr“.ConnectionString; SqlConnection sqlConn = new SqlConnection(connstr);

8、sqlConn.Open(); string str = “select * from t_ware “; SqlDataAdapter da = new SqlDataAdapter(str, sqlConn); DataSet ds = new DataSet();,da.Fill(ds, “ware“); PagedDataSource pds = new PagedDataSource(); pds.DataSource = ds.Tables“ware“.DefaultView; pds.AllowPaging = true; pds.PageSize = 6; /设置每页显示的记录

9、数 pds.CurrentPageIndex = CurrentPage() - 1; this.DltNewWare.DataSource = pds; DltNewWare.DataBind(); sqlConn.Close();,LblCurrentPage.Text = “第“ + (pds.CurrentPageIndex + 1).ToString() + “页“; LblPage.Text = “/共“ + pds.PageCount.ToString() + “页“; int page = CurrentPage(); if (!pds.IsFirstPage) this.Hy

10、perLink1.NavigateUrl = “/Chapter6_task11.aspx?Page=“ + (page - 1);, if (!pds.IsLastPage) this.HyperLink2.NavigateUrl = “/Chapter6_task11.aspx?Page=“ + (page + 1); public int CurrentPage() if (Request.QueryString“Page“ != null) return Convert.ToInt32(Request.QueryString“Page“); else ,return 1; ,知识2 会

11、话状态 会话状态保存每个活动的 Web 应用程序的会话值,是System.Web.SessionState.Http SessionState类的一个实例,它通过Page等类的Session属性公开。会话状态采用键/值字典形式的结构来存储特定于会话的信息,这些信息需要在服务器往返行及页请求之间进行维护。 会话状态限制在当前浏览器会话中。如果多个用户使用同一个应用程序,则每个用户会话都将有一个不同的会话状态。存储在会话状态变量中的理想数据是特定于单独会话的短期、敏感的数据。,使用会话状态具有以下优点: 实现简单。会话状态功能易于使用。 会话特定的事件。会话管理事件可以由应用程序触发和使用。 数据

12、持久性。放置于会话状态变量中的数据可以不受IIS重新启动而丢失数据。会话状态数据可跨多进程保持。 平台可伸缩性。会话状态可在多计算机和多进程配置中使用,因而优化了可伸缩性方案。, 无需Cookie支持。尽管会话状态最常见的用途是与Cookie一起向Web应用程序提供用户标识功能,但会话状态可用于不支持HTTP Cookie的浏览器,而且将会话标识符放置在查询字符串中。 可扩展性。可通过编写自己的会话状态提供程序来自定义和扩展会话状态,然后,通过多种数据存储机制将会话状态数据以自定义数据格式存储。,1设置和使用会话状态 Session对象用来存储某个特定的用户会话所需的信息。当用户在Web应用程

13、序的不同页面切换时,存储在Session对象中的变量不会被丢弃,而是在整个用户会话期间内保留。 例如,当成功登录到校园在线超市的用户保存在会话状态中,代码如下: Session“VipName“=“张三“; 也可以调用Session对象的Add方法,传递项名称和项的值,向会话状态集合添加项。代码如下: Session.Add(“VipName“,“张三“);,添加项以后,就可以在任意页面中访问它们的值:代码如下: If(Session“VipName“!=null) string strVipName=Session“VipName“.ToString(); 在上面的代码中,首先判断会话状态项

14、是否已经存在,然后再访问该会话状态值。,2设置会话状态的有效期 HTTP是一个无状态协议。Web服务器无法检测用户何时离开了Web站点。然而,Web服务器可以检测到在一定的时间段内,用户有没有对页面发出请求。这时,Web服务器可假定用户已经离开了Web站点,并且删除与那个用户相关的会话状态中的所有项。,默认情况下,用户在20分钟内没有请求页面时,会话就超时。可以通过修改配置文件Web.config来设置在会话状态提供程序终止会话之前各请求之间所允许的时间,代码如下: ,当然,也可以通过编写代码设置Session对象的Timeout属性,以设置会话状态过期时间。代码如下: Session.Tim

15、eout=30;,3删除会话状态中的项 通过调用Session对象的Clear和RemoveAll方法,可以清除会话状态集合中的所有项,也可通过Remove和RemoveAt清除其中的某一项,还可以通过调用Abandon方法取消当前会话。 例如,要从会话状态中删除VipName项,调用Remove方法,并传递要删除项的名称即可。代码如下: Session.Remove(“VipName“);,值得注意的是,当调用Clear和RemoveAll及Remove和RemoveAt方法时,只是从会话状态中删除了缓存项,会话并没有结束。实际应用中,出于对客户会话状态信息的保护,应该提供让客户注销登录的功能。通过调用Abandon方法就可完成注销功能。代码如下: Session.Abandon(); 调用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号