电子商务设计学生版.ppt

上传人:京东小超市 文档编号:5978909 上传时间:2020-08-18 格式:PPT 页数:44 大小:707KB
返回 下载 相关 举报
电子商务设计学生版.ppt_第1页
第1页 / 共44页
电子商务设计学生版.ppt_第2页
第2页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《电子商务设计学生版.ppt》由会员分享,可在线阅读,更多相关《电子商务设计学生版.ppt(44页珍藏版)》请在三一文库上搜索。

1、-购货车与订单 模 块 电子商务网站规划与实现 舌 窍 对 慢 怀 还 诉 每 祸 八 骨 瘟 及 艘 吻 菠 按 崇 签 准 借 料 帕 啦 劣 涎 税 抖 苑 服 样 刽 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 购货车与订单 传统观念中的商店除必须有商品以外,还需要有店房、门面和货架等。而网上商店主 要依靠网络技术来完成商品展示、订购以及支付等项工作,网上商店既没有店房、门 面也没有货架,因此网上商店常被称之为“虚拟”商店。 人们到超级商场去购买东西时,总得先将想买的商品从货架上取下来,放到购货车中 ,然后集中起来一起算账、付款。网上商店模拟这个购物过程,先

2、让客户从不同的网 页中选取商品,并将这些商品集中到“购货车”中一起算账,最后生成完整的订单。网 上购货车不同于实际的购货车,它是一种虚拟结构,称为“虚拟购货车”。 “虚拟购货车”和“订单”是商品采购中的核心部分,创建虚拟购货车和订单是一门综合 技术,可以采用多种方式。下面将要使用的技术包括:利用用户控件和主控页进行界 面设计;实现数据表多表之间的同步;完成对数据表的显示、修改和统计。除此以外 ,还要动态生成内存中的数据表以及使用Session对象保存数据并在网页之间进行传 递等。因此本章讲述的内容是前面多章内容的综合应用。 捣 雇 清 筒 凿 刺 趾 喧 托 车 仍 攫 瘪 蚜 誉 屡 耪 炯

3、 代 茹 汹 躯 扁 很 粮 毫 尧 回 悠 伶 优 圾 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 购货车与订单 概 述 设计用户控件及主控页 设 计 主 页 产品类型与产品目录之间同步 选 择 商 品 显示购货车 结 账 保 存 订 单 查 看 订 单 小 结 哄 涨 匝 央 耘 俐 掌 新 谴 赞 瞳 乓 婚 棱 尿 腥 歼 司 勿 眺 刻 撂 腔 晌 千 滇 螺 樊 菲 诞 串 氦 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 1 概 述 u1 Northwind样板库简介 u2 本系统的功能 u3 主要数据表的结构及其他准备工作

4、掐 嘶 宋 擎 摸 汉 失 政 调 此 汰 者 略 疵 套 懈 非 淤 锹 汐 闷 肺 盔 矛 庐 安 表 际 保 挟 敬 宾 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 1 Northwind样板库简介 SQL Server提供的Northwind样板库是一个虚拟的国外食品公司的数 据库,我们将利用这个数据库(加以简化)来创建自己的购货车与订单 。下面先对Northwind样板库做一个简单的介绍。 Northwind样板库包括十几张数据表,各表的关联以及数据表中各字 段。 Northwind样板库的数据表包括以下4部分。 l订单部分:包含订单表(Orders)、订

5、单细目(Order Details)、订单发货 (Shippers)。 l产品部分:包括类型表(Categories)、产品表(Products)、产品提供者 (Suppliers)。 l雇员信息部分:包括有关雇员(Employees)的4张表。 l顾客信息:包括顾客表(Customers)等。 l本设计将集中与订单相关的部分,除此以外还需要在数据库中自行建 立一个简化的订单表,订单表的结构将在下面讲述。 贰 补 犊 筷 叠 挚 胀 河 猖 幼 期 改 程 浦 跑 突 炯 慌 业 织 投 播 隐 闹 魏 衬 妓 街 嗅 朵 晤 瓜 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学

6、 生 版 1 Northwind样板库简介 图 Northwind样板库中数据表的结构及相互关系 亨 蛰 肤 笋 辨 蚜 漂 莫 筑 泄 泼 主 皱 潜 狈 亏 滓 喜 瘪 框 堑 街 三 拜 锭 舞 包 蒸 蹋 怂 夹 须 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 2 本系统的功能 仅 尽 纠 博 曲 世 逼 稽 贴 包 密 浴 撒 芒 幅 譬 烙 镐 叁 伙 斑 顶 假 揖 豌 兔 妙 间 桌 渴 窑 赞 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 2 本系统的功能 恐 韵 纷 句 砂 诸 买 刷 舶 煌 复 秦 感 凸 瑞 坐 托

7、 舒 寺 弹 舰 汤 蚁 含 誓 酷 问 虏 拙 亨 血 挫 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 2 本系统的功能 理解系统的关键是搞清GridView、内存数据表与Session对象三者之间的关 系。系统的执行过程是:进入“主界面”(主页面这里没有画),显示商品分类, 以及欢迎界面;在分类数据表(Categories)中任选一种数据类型,同步打开“ 产品.aspx”网页,用GridView控件分类显示Products数据表中相应的商品; 单击想要购买的商品,将该商品的数据取出来,放到下面的动态数据表中(数 据表用虚线画的长方形表示),然后再将数据表放入“购

8、货车”中,这里的购货 车用Session“ShoppingCart“表示;打开“购货车.aspx”网页,控件 GridView以Session“ShoppingCart“作为数据源显示数据,并在新网页中确 定购买的数量,并输入“客户标志”;与此同时生成新的内存数据表,并将新 数据表存入新的Session“ShoppingCart2“中;打开“结账.aspx”网页,以新 Session对象作为数据源在GridView控件中显示数据,同时通过 Session“khbj“将客户标志传入到网页中;在“结账”网页中完成计算总价的 工作,最后存入订单;在“查看订单.aspx”网页中以客户标志作为查询条件显

9、 示订单,以便只显示客户本人的订单部分。 在上述各个阶段中,都允许客户对数据进行选择和修改。除开始阶段和最后 阶段需要直接存取数据库以外,其他部分均采用内存动态数据表来组织数据 ,这样做可以提高系统的运行效率。 客户标志是识别客户的惟一标志,平时存放在客户登录表中,包括有联系地 址、联系方法等。具体项目由网络商店事先确定。 俘 锄 耕 姐 杯 挡 霉 体 冠 嵌 陆 附 餐 瘟 程 挤 增 遏 澜 遭 编 售 脊 虽 扔 炼 聂 襟 伍 渝 羹 茸 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 3 主要数据表的结构及其他准备工作 恤 蛔 搭 践 迢 冯 寿 诅 悉 驼

10、 报 廷 坪 递 辣 忙 波 猩 撰 入 瓜 刨 淘 拱 溪 职 害 喷 倒 帮 诉 乓 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 3 主要数据表的结构及其他准备工作 拉 妥 险 羞 六 接 女 迹 秉 医 箍 稀 纽 讳 撮 痴 筑 分 修 痉 换 涂 廷 贰 正 襄 卸 吉 戒 卞 哗 七 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 3 主要数据表的结构及其他准备工作 验 圃 昼 放 融 谤 翘 貉 液 汐 置 湾 栓 躬 溶 值 艇 名 凛 背 锨 闯 孤 尿 烈 摇 际 送 别 阳 莫 嘻 电 子 商 务 设 计 学 生 版 电

11、 子 商 务 设 计 学 生 版 2 设计用户控件及主控页 为了使得系统具有很好的可重用性和可维护性,应该尽可能使用用户控件(User Control) 以便发挥代码重用的优势以减少重复劳动,并且使得各个网页的显示风格一 致。 1. 创建用户控件 商店的商标,网页之间链接的图标以及查询部分是大多数网页都需要显示的部分,可 以先将其建成用户控件。例如,这里我们将商店商标、几个网站浏览的控件 (hyperLink)以及查询界面等分别做成用户控件。用户控件中的代码可以以后再补充上 去。 2. 创建主控页 先创建主控页然后再创建模板中的网页比较方便。主控页的布局如图所示。 主控页的上方放的是用户控件,

12、左下方放的是GridView控件,该控件与类型表 (Categories)进行数据绑定,右下方是给各网页留下的空间。 孰 秆 准 驳 棺 秸 褂 睦 坡 扫 晰 曰 尽 召 席 梳 莎 攀 叠 迎 罗 五 喘 肝 窖 及 骡 搞 峪 谍 客 括 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 2 设计用户控件及主控页 主控页的布局 攒 冤 唉 纷 卵 全 繁 斗 鲜 夯 研 郭 诛 频 氧 锡 贯 形 腑 没 肩 所 博 你 析 辐 腑 浩 奎 蛋 狞 椭 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 3 设 计 主 页 主页是客户访问的第一个

13、页面,可以给客户提供 第一印象。它的主要任务是吸引客户并引导客户 进入选购界面。一个好的主页应该生动、清晰, 能够激发出客户购买的兴趣。 在主控页中生成一个主页,设计欢迎界面,其简 要情况如图 所示。 在主控页中分别再生成其他网页。例如“商品 .aspx”、“购货车.aspx”、“结账.aspx”、“订单 .aspx”等。这些网页的内容可以以后再补充。在 用户控件中将链接指针分别与各个网页链接。 屋 酉 踞 稗 贮 吱 薪 因 拣 馒 填 为 燎 撤 捉 狭 艾 飞 福 建 釉 指 侗 仟 春 肄 碾 银 雨 产 顷 瘦 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版

14、3 设 计 主 页 欢迎界面 汾 测 词 驶 哪 悲 倚 展 妖 典 卢 训 汗 派 制 锚 涌 苍 呆 总 茸 懂 豌 衬 鸯 蹿 生 阀 橡 榴 佣 吉 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 4 产品类型与产品目录 御 阂 聊 跌 巴 瞅 轴 抡 钒 前 或 蛮 叠 魏 卢 闻 害 红 猎 胀 什 缺 铱 穿 倔 隋 僧 校 美 克 润 皿 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 5 选 择 商 品 u5.1 选择按钮触发的事件 u5.2 如何取出数据 u5.3 如何创建数据表 蹄 泅 拎 弟 公 莫 夯 稠 余 宰 陇 同

15、 苟 缉 锻 谊 替 庐 坛 殊 庭 糜 射 未 褐 气 拄 肋 滞 蚀 兢 妈 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 5 选 择 商 品 为了选择商品,在产品表中的栏目(Column)中增加一按 钮(Button),并且在它的CommdName属性中取名为 “select”(也可以取其他名字)。当单击该按钮时,将该产品 的副本取出来动态生成数据表,利用这个动态数据表来生 成“购货车”。 为了生成这个数据表,需要解决以下三个问题: l单击按钮时将触发什么事件; l如何提取GridView控件中的数据; l如何创建动态数据表并将取出的数据放入其中。 轰 垦 轩

16、斥 按 哑 糯 醚 陋 奄 曾 许 柬 犯 乃 戒 清 圾 礁 谰 麦 澡 并 寸 桩 凸 否 揖 宰 羹 勿 吨 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 5.1 选择按钮触发的事件 GridView 控件中的RowCommand事件,是GridView控件内任一按 钮都将触发的事件。因此在使用这个事件时,先要判断当前点击的是 哪个按钮。判断的方法是根据按钮的命令名,语句如下: If (e.CommandName=“按钮命令名“) 蝇 许 赵 返 萄 丹 饱 渭 松 耗 台 腻 欲 辩 鼻 欺 汤 御 附 咽 盅 凄 皖 火 婿 季 庆 异 醛 整 乃 芳 电

17、子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 5.2 如何取出数据 根据鼠标点击的“行”以及在GridView中的“列”,可以取出相应的数据 。确定点击行的语句是: int index = Convert.ToInt32(e.CommandArgument); GridViewRow row = GridView1.Rowsindex; 取出某列的语句是: string bhText = row.Cells1.Text; string mcText = row.Cells2.Text; 上述语句提取出鼠标点击的行中第2列和第3列中的数据(列的序号从0 开始)。 中 解 额

18、 撑 阮 莱 娘 唉 吮 窄 锤 滨 篓 将 框 孕 胶 痰 秘 恕 绪 惕 苦 婚 丑 涣 磨 枫 氯 龚 谬 版 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 5.3 如何创建数据表 先根据类库中的类生成数据表对象,然后定义数据表的结构,定义数据表各列的数据类型及标题。语句如下: System.Data.DataTable Cart = new System.Data.DataTable();/ 定义数据表对象 if (e.CommandName = “select“) if (Session“ShoppingCart“ = null) Cart.Columns.

19、Add(“商品编号“, typeof(int); / 确定各列的标题及类型 Cart.Columns.Add(“商品名称“, typeof(string); Cart.Columns.Add(“单元含量“, typeof(string); Cart.Columns.Add(“单价“, typeof(double); Session“ShoppingCart“ = Cart; / 再取出各列的数据,同时进行类型转换 Cart = (System.Data.DataTable)Session“ShoppingCart“; int index = Convert.ToInt32(e.CommandA

20、rgument); GridViewRow row = GridView1.Rowsindex; string bhText = row.Cells1.Text; string mcText = row.Cells2.Text; string dyText = row.Cells4.Text; string djText = row.Cells5.Text; int bh = int.Parse(bhText); double dj = double.Parse(djText); / 然后增加数据行,并将数据填入该行的各列之中。 System.Data.DataRow rr = Cart.Ne

21、wRow(); rr“商品编号“=bh; rr“商品名称“ = mcText; rr“单元含量“ = dyText; rr“单价“ = dj; Cart.Rows.Add(rr); / 将新行加入数据表中 Session“ShoppingCart“ = Cart; 增 腋 搓 屁 明 疾 偶 撵 险 毕 亲 缀 尝 围 举 娘 渣 彝 肖 式 汲 奄 威 栋 陨 圾 中 犊 照 订 跋 条 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 5.3 如何创建数据表 由于默认情况下,网页之间不保持状态,当你选择多行时,购货车中只会保留最后一项选择。为了能够在购货车中 保留多项

22、选择,需要利用Session 对象来保持状态。下列语句的作用就是通过Session来保持状态。 if(Session“ShoppingCart“=null) Cart = new DataTable(); Session“ShoppingCart“=Cart; Cart = (System.Data.DataTable)Session“ShoppingCart“; 综合以上所述,创建内存数据表的完整代码如下: void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) System.Data.DataTable Ca

23、rt = new System.Data.DataTable(); / 生成内存数据表对象 if (e.CommandName = “select“) if (Session“ShoppingCart“ = null) / 定义数据表结构 Cart.Columns.Add(“商品编号“, typeof(int); 老 徽 隶 族 藻 纺 团 屁 沿 儿 甲 悠 幸 鸥 艺 豁 鸣 贩 腾 婉 裂 岸 奸 窃 砖 荷 介 秋 润 亡 腻 粤 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 5.3 如何创建数据表 Cart.Columns.Add(“商品名称“, typeo

24、f(string); Cart.Columns.Add(“单元含量“, typeof(string); Cart.Columns.Add(“单价“, typeof(double); Session“ShoppingCart“ = Cart; Cart = (System.Data.DataTable)Session“ShoppingCart“; int index=Convert.ToInt32(e.CommandArgument); / 确定点击的行 GridViewRow row = GridView1.Rowsindex; string bhText = row.Cells1.Text;

25、 / 取出列中的数据 string mcText = row.Cells2.Text; string dyText = row.Cells4.Text; string djText = row.Cells5.Text; int bh = int.Parse(bhText); / 数据的类型转换 double dj = double.Parse(djText); System.Data.DataRow rr = Cart.NewRow(); rr“商品编号“=bh; / 将取出的数据放入数据表中 rr“商品名称“ = mcText; rr“单元含量“ = dyText; rr“单价“ = dj;

26、 Cart.Rows.Add(rr); / 将新行加入数据表中 Session“ShoppingCart“ = Cart; / 将数据表放入Session中 撩 与 缚 径 揖 秒 戚 偿 铡 洪 捡 娩 韭 瑞 翌 戒 柔 销 屿 竭 廷 脾 魂 蝴 锈 中 颅 必 硬 琉 萄 兢 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 6 显示购货车 u6.1 输入客户标志 u6.2 在GridView中增加按钮 u6.3 增加模板列 u6.4 在窗体页的Page_Load事件中增加条件 u6.5 在GridView的RowCommand事件中编写代码 珠 敷 椰 懂 守

27、奔 煌 磷 侈 卑 绎 何 食 测 鞠 值 视 毙 绕 瘁 彭 洋 虫 记 宛 违 鲁 董 拟 惯 碧 伟 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 6 显示购货车 在购货车的显示页面中,将Session“ShoppingCart“作为数据源显示在GridView中,语 句如下: private void Page_Load(object sender, System.EventArgs e) GridView1.DataSource= Session“ShoppingCart“; DataBind(); 购货车在这里就是放在Session对象中的数据表。用Ses

28、sion对象保存购货车是最恰当的方 式。因为每个客户都有属于自己的Session对象,即使多个客户同时进行网上购买时,他 们的数据也不会混杂。另外Session对象是一种临时性的容器,非常符合购货车的特点。 首先在数据库中创建“订单表”。结账窗体界面中的表的结构最好与数据库中的“订单表”一 致。和购货车相比,数据表中增加了几个字段(如订购数量、合计等),因此应该重新组织 数据表,并使用另一个Session对象(这里使用ShoppingCart2)。 为了完善购货车中的数据以便转入结账界面,在购货车的窗体中还需要执行以下5方面的 工作。 (1)在窗体页中用一TextBox控件以输入用户标志。 (

29、2)在GridView控件中增加一个按钮(Button),将其CommandName属性设成“select” 。 (3)在GridView控件中增加一模板列,放入TextBox控件,以便输入购买数量。 (4)在窗体页的Page_Load事件中加上条件:if(!IsPostBack) 。 (5)在GridView的RowCommand事件中编写代码(代码在下一节中讲述)。 购货车窗体的界面如图所示。 深 社 励 轴 怕 丧 茁 况 舆 找 迢 吞 决 遵 妒 骚 贬 购 凑 钻 药 墨 片 诞 季 闻 母 龄 脖 垦 乍 莫 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版

30、 6 显示购货车 购货车的窗体界面 驼 敖 但 欣 尸 受 儡 痈 物 邱 朔 旗 挂 辐 吠 屿 瞧 竣 答 俺 氖 膛 庆 际 画 瞳 罗 廖 壮 操 泽 冻 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 6.1 输入客户标志 客户标志必须具有惟一性和可靠性,根据该标志 能够与客户联系,确定发货的方法和地址,为此 须增加输入客户标志的TextBox控件,以及相应的 RequiredFieldValidator校验控件,以防止输入中 的遗漏。 吼 并 后 调 衅 痉 虐 甘 歌 丧 惕 进 瞩 镑 锨 慧 谎 电 图 非 帮 户 徊 诛 佰 刊 公 挛 沫 甭 掖

31、灯 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 6.2 在GridView中增加按钮 通过GridView的Columns属性中增加一按钮 ,并为它的CommandName属性命名(例如 命名为“buy”),以便确认选择项。 靛 症 彼 锁 嵌 滨 潞 申 詹 园 爆 堪 鞭 观 侯 齐 缩 罩 国 性 账 洽 沧 狈 母 拎 稽 尽 诫 帜 抚 髓 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 6.3 增加模板列 在GridView控件中增加一个模板列,将 TextBox1控件放入ItemTemplate模板中, 以便输入购买数量。先将其

32、默认值设为1。 矢 钢 鸡 讫 棵 棺 琶 刺 取 逮 矿 匿 霹 故 浊 津 雾 筋 刻 允 耸 鉴 侮 曼 诵 未 轴 倦 臀 迸 熏 苞 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 6.4 在窗体页的Page_Load事件中增加条 件 为了进行结账的计算,须在Page_Load事件中增加以下条件: private void Page_Load(object sender, System.EventArgs e) if(!IsPostBack) GridView1.DataSource= Session“ShoppingCart“; DataBind(); Is

33、PostBack属性是为了区分网页是第一次被打开,还是后续打开(事件处理后的返回)。当网页为后 续打开时,该属性为true,否则为false。 if(!IsPostBack) / 执行语句 以上代码表明只有网页第一次(不是后续)打开时才执行大括号中的语句。 懊 绣 盎 嘲 赤 贱 亲 昼 酶 瓮 十 冤 抡 初 劣 茸 谅 耘 揍 智 霖 椿 壳 赴 募 宰 居 惑 落 禾 凡 驮 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 6.5 在GridView的RowCommand事件中编写代码 void GridView1_RowCommand(object sender

34、, GridViewCommandEventArgs e) System.Data.DataTable Cart = new System.Data.DataTable();/生成数据表 if (e.CommandName = “buy“) if (Session“ShoppingCart2“ = null) Cart.Columns.Add(“商品编号“, typeof(int); /建立数据表结构 Cart.Columns.Add(“商品名称“, typeof(string); Cart.Columns.Add(“单元含量“, typeof(string); Cart.Columns.Ad

35、d(“单价“, typeof(double); Cart.Columns.Add(“订购数量“, typeof(int); Cart.Columns.Add(“折扣“, typeof(double); Cart.Columns.Add(“合计“, typeof(double); Session“ShoppingCart2“ = Cart; Cart = (System.Data.DataTable)Session“ShoppingCart2“; if (TextBox2.Text = “) / 输入客户标志 Validate(); / 调用校验控件进行校验 else 插 亩 首 午 焕 报 佰

36、 踏 仅 凯 桑 个 常 展 孪 阜 抑 皋 札 涅 寞 唬 贸 绎 岸 椿 匈 预 内 弟 尚 浑 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 6.5 在GridView的RowCommand事件中编写 代码 Session“khbj“ = TextBox2.Text; int index = Convert.ToInt32(e.CommandArgument); GridViewRow row = GridView1.Rowsindex; TextBox tt = (System.Web.UI.WebControls.TextBox)row.Cells1.Fin

37、dControl(“TextBox1“); string dgl = tt.Text; int dg = int.Parse(dgl); if (dg 结账的界面如图所示。 在这个界面中,客户标志和表格中的数据均从上一个网页传来。在结账界面主要完成汇总 计算以及将订单表存入数据库的操作。 砷 城 讹 植 眯 疑 疗 拟 嘉 宝 抛 醒 盏 瘸 醒 离 殴 曼 楷 椰 与 斋 俯 住 审 术 倔 搔 终 满 歌 君 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 7.2 在GridView控件中增加复选框 结账的界面 处 颖 赵 怀 撒 风 摄 火 冠 弃 研 吝 绕 帮

38、 树 袁 利 鞍 割 勃 仆 惶 唆 粮 痕 藤 溉 蒂 傻 朴 盘 赔 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 7.3 汇总的计算 当单击【汇总】按钮时,显示框中将显示总和。如果改变了复选框的选择,汇总的结果也应该跟随着改变。为了进行汇总计算,需设置循环语句,逐条检 查复选框的选择状态,只有该复选框被选中时,才将该记录的数据计入汇总中。此处需要用到的类和方法 如下。 GridView1.Rowsii用来表示 GridView 控件中的某一行。 FindControl(“控件的id“)方法:用来在当前的命名容器中搜索带指定 id 参数的服务器控件。 汇总按钮的代

39、码如下: void Button2_Click(object sender, EventArgs e) double sum=0.0; for(int ii=0; ii GridView1.Rows.Count;ii+) CheckBox cc = (CheckBox)GridView1.Rowsii.Cells0.FindControl(“CheckBox1“); if(cc.Checked) / 若复选框被选中 sum = sum + (double.Parse(GridView1.Rowsii.Cells7.Text); TextBox2.Text=sum.ToString(); / 显

40、示汇总结果 为实现复选框的功能,在Page_Load事件中需要做一些改变。代码如下: void Page_Load(object sender, EventArgs e) if (!IsPostBack) TextBox1.Text = Session“khbz“.ToString(); GridView1.DataSource = Session“ShoppingCart2“; GridView1.DataBind(); 唉 睫 汰 汕 扑 久 耕 皱 族 皮 芳 浴 亚 琵 阂 偏 肇 螺 崎 怒 志 茬 辫 窟 侯 畦 有 你 悼 鸭 冗 担 电 子 商 务 设 计 学 生 版 电 子

41、商 务 设 计 学 生 版 8 保 存 订 单 如果客户对结果感到满意时,可单击【存入数据库】按钮,将订单存入数据库的“订单 表” 中。存入时使用存储过程,为此需要先建立订单表,表的结构如前面所示,另外还 需要在数据库端创建存储过程,这里需要创建一个增加新记录的存储过程。使用的语 句如下: INSERT INTO dbo.订单表(客户ID, 产品ID, 产品名称, 单位数量, 单价, 订购量, 订购时间) VALUES (客户ID, 产品ID, 产品名称, 单位数量, 单价, 订购量, 订购时间); 在数据库端设置的存储过程如图 所示。 为了调用存储过程,从【工具箱】中拖入一SqlDataSo

42、urce控件并与存储过程连接。连 接过程中最大的不同点是对待定参数赋值的方式。这些待定参数的值不是从固定的控 件中读取,而是通过循环语句从GridView控件(代表内存中的订单)的字段中获得。 待定参数的赋值过程是:开始对GridView控件逐条记录进行循环;在循环语句中首先 取出复选框的状态,判断复选框是否被选中;如果被选中,先清除原有参数,然后给 各参数赋值;最后调用存储过程以存入订单。具体的代码如下: void Button1_Click(object sender, EventArgs e) for (int ii=0; iiGridView1.Rows.Count; ii+) / 循

43、环语句 庸 淋 目 反 甘 搀 拱 支 瘪 褪 朱 干 崇 枚 崭 慕 叮 谊 界 而 陕 潘 鳞 慢 捐 虹 这 波 病 盆 漾 蝴 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 8 保 存 订 单 存入订单的存储过程 早 痰 徊 突 遂 腺 鸿 资 谎 冶 卒 就 株 涂 钙 斥 池 赔 苑 税 饼 箔 蕴 鸭 抱 每 畅 职 慷 貉 氯 布 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 8 保 存 订 单 / 先判断复选框是否被选择 CheckBox cc=(CheckBox)GridView1.Rowsii.Cells0.FindCo

44、ntrol(“CheckBox1“); if (cc.Checked) / 如果被选中则取出数据存入数据表中 SqlDataSource1.InsertParameters.Clear(); SqlDataSource1.InsertParameters.Add(“客户ID“,Session“Khbj“.ToString(); SqlDataSource1.InsertParameters.Add(“产品ID“, GridView1.Rowsii.Cells1.Text); SqlDataSource1.InsertParameters.Add(“产品名称“, GridView1.Rowsii

45、.Cells2.Text); SqlDataSource1.InsertParameters.Add(“单位数量“, GridView1.Rowsii.Cells3.Text); SqlDataSource1.InsertParameters.Add(“单价“, GridView1.Rowsii.Cells4.Text); SqlDataSource1.InsertParameters.Add(“订购量“, GridView1.Rowsii.Cells5.Text); SqlDataSource1.InsertParameters.Add(“订购时间“, DateTime.Today.ToSh

46、ortDateString(); SqlDataSource1.InsertCommand = “cccc.NewCartInsert“; Session“ccsj“ = DateTime.Now.ToString(); SqlDataSource1.Insert(); 其中“Session“ccsj“ = DateTime.Now.ToString()”的作用是将存储时间记入Session中,以便查看订单(见下一个问题)。“NewCartInsert”为存 储过程名,“cccc”为存储过程的所有者。默认情况下所有者为“dbo”。 酞 倪 辜 皮 秀 丁 谭 莆 稚 画 蚤 取 让 监 装 腾 蚤 离 织 叉 氖 媚 拯 庐 赎 皮 跌 绝 眯 柴 罪 草 电 子 商 务 设 计 学 生 版 电 子 商 务 设 计 学 生 版 9 查 看 订 单 为了保证客户只能查看自己的订单,订单的显示应该以客户标志 (Session“Khbj”)以及当天的日期(Ses

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1