现在的位置: 首页 > 综合 > 正文

PetShop3.x学习笔记12-Web学习笔记

2013年10月30日 ⁄ 综合 ⁄ 共 2202字 ⁄ 字号 评论关闭

一、 Web主要功能:

1、              页面展现

2、              数据缓存——页面输出缓存、数据缓存、对象缓存

 

二、 实现细节:

1、              网站页面文件功能说明

 

文件名

.aspx文件

.cs文件

default

1、使用了两个用户控件,Banner(页面底端)和NavBarNoMenu(页面顶端)

没有特殊作用

Banner

在页面底端,用于显示用户最感兴趣的宠物的广告图片

使用到了AccountController.cs文件

AccountController

1、用于实现一组对用户账户进行操作的功能:如创建、更新账户,用户登录、注销,返回账号对象,取回当前用户最喜爱的宠物类别等

2、跟Web层打交道的类(从Web层引用的命名空间可以看出),只有BLLModel中的类。在实例化的时候一定要注意,实例化的是哪个层的类。如BLL层叫Account,而Model层叫AccountInfo

Category

1、注意:使用另一个命名空间(即使是同一个Assembly)中的类的方法!例:

<%@ Register TagPrefix="controls" Namespace="PetShop.Web.Controls" Assembly="PetShop.Web" %>

2、开始涉及到翻页程序的问题!将SimplePagerDataGrid对照着看,可以知道在控件中使用模板列的方式,以及控件中的实现方式!

1、最主要的就是一个PageChanged()方法,响应了由SimplePager定义的PageIndexChanged事件

2、处理了该从哪里取数据,即该显示什么数据的问题

3、若数据已被显示过,则直接从缓存中读取数据,并将SimplePager对象绑定数据源;若数据没有被显示过,则实例化BLL层的对象,从数据库读取数据(IList引用),并缓存起来,然后将SimplePager对象绑定数据源

4、绑定数据源的事件又引发了SimplePager对象的OnDataBinding()事件处理程序

SimplePager

1、为了使SimplePager类使用继承于IList接口的数据源,所以重写了RepeaterDataSource属性

2、对外公布了PageIndexChanged事件,可供客户事件处理程序使用

3、主要用于计算(当前)页码,以及根据总页码及当前页码,决定是否显示向前向后的(图片)按钮

4、不规定数据源,使这个翻页程序可在很多场合重用

5SimplePager控件似乎不应该在每次翻页的时候都检查数据源啊?!

NavBar.ascx

1、导航条。包括主图片、分情况显示登录或注销输入框、Category项目等

2、由于是演示程序,这里的Category被写死在页面当中,当类别可以动态修改的时候不能使用,参考价值不大

1、主要用于根据用户身份认证情况显示登录选项和注销选项

Items

1、显示Items列表和显示Products列表(Category文件)实现方式是类似的

2、也是在页面中使用了SimplePager控件,用于根据当前给定的数据源进行数据绑定,并翻页显示

1、与Category.aspx.cs完成的功能相同

ItemDetails

1、显示某个Item的具体细节情况,如单价、库存数量等

2、如果选中,可点击“添加”按钮,将该Item添加到购物车(在购物车页面中调整要购买该Item的数量)

1、读取用户请求的ItemId

2、实例化BLL层的对象,根据ItemId得到一个ItemInfo实例

3、将此ItemInfo实例的各个属性分别赋值给页面上的各Label,并显示

CleanString.cs

1、用于过滤用户输入的字符,如去掉空格,替换掉怪字符等

2、加一些更特殊的过滤选项,可以使用在自己的项目中

ShoppingCart

1、非登录用户也可以向购物车中添加物品,但当下订单的时候会出现登录框

2、主要用于显示当前购物车中的物品条目及数量

1、用于处理用户点击“Update”或“Remove”时,重新计算某个Item的费用、总共的费用或移除某个Item

2、其他响应购物车事件的操作

ViewStatePager.cs

 

1、主要用于处理购物车中物品显示时的翻页问题

2、继承于SimplePager类,大部分的方法都由重写SimplePager类的同名方法得到

3、比SimplePager类多定义了两个方法:PreviousClicked()MoreClicked()

CartController.cs

1、主要功能:对购物车的存取操作

2、创建或从Session中取出现有的购物车;将修改后的购物车保存回Session

3、购买购物车中现有的物品——调用BLL层,插入一个新的订单(使用了BLL层的OrderInsert.cs类,这个类是应用“分布式事务”进行处理的典型案例)

4、向Session中保存或取出用户信用卡信息和邮递地址信息等

CreateAccount

1、用于显示用户注册时的界面

2、其中的My AddressMy Preference都采用了独立的User Control

1、对用户输入的信息,都要使用CleanString类进行过滤

2、使用了Model中的AccountInfoAccountController类,将用户注册的信息添加到数据库中

抱歉!评论已关闭.