ASP.NET 2.0打造购物车和支付系统之一(1)

【导读】在本系列文章中,我们基于ASP.NET 2.0构建了一个简化的在线购物车和PayPal系统;并通过这个示例,对ASP.NET 2.0中新引入的GridView控件作了深入研究。 字串7

 

到目前为止,我几乎在每一个我参加过的商业C#.net工程中使用了DataGrid控件;因此,当我第一次听到有关于GridView是如何提高工作效率时,我飞快地试用了它。DataGrid和GridView都是ASP.NET 2.0中提供的新的控件类,它们允许你快速容易地显示表格式数据;并且当在线观看它们时,它们都能被转换为客户端HTML表格进行显示。 字串7

一.简介

这是系列文章的第一篇。在本篇中,我们将通过一个简单的网上商店示例程序来集中讨论GridView控件的一些用法。注意,在每一篇文章中我们都使用相同的源文件。为了观察本文示例演示效果,你只需要把下载内容解压到你的web服务器上一个新的目录并浏览到该目录名即可。例如,如果你把所有的内容解压到一个你的web服务器根目录下的目录“gridviewshop”,并导航到这个目录:

http://www.yourserver.com/gridviewshop

如果一切顺利,那么你应该会看到一个如下图1所示的站点:

 

图1:本系列文章网上商店演示程序快照 字串6

二.GridView

 

如果你已经使用DataGrid实现了你的系统,包括你自己的定制分页与排序方案,那么,你真正不需要考虑更新到GridView;因为从终端效果来看,它们都生成相同的内容(都生成一个HTML表格)。然而,如果你刚开始开发一个新的系统,那么,我建议你使用GridView,特别是如果你想利用它内置的分页与排序功能的话。

通过在设计时刻设置各种属性,你可以控制GridView从外观到功能等若干方面。在本系列文章后面,我们将会更为深入地探讨这些方面,通过把一些CSS类指派给表格行和表格列头;当然,还要添加一些事件处理器以便允许用户与每一行数据进行交互。

填充GridView类似于填充一个DataGrid。你只需创建DataSource,然后使用如下代码把它绑定到GridView即可:

myGridView.DataSource = yourDataSource;

myGridView.DataBind();

 

当然,借助于.NET 2.0,你还有另一种选择,那就是创建一个SqlDataSource并把GridView直接绑定到其上。这是通过设置它的DataSourceID以匹配你指派给SqlDataSource的ID实现的,即是:

 

<!--使用mySqlDataSource的ID创建SqlDataSource-->

<asp:SqlDataSource

id="mySqlDataSource"

runat="server"

DataSourceMode="DataReader"

ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"

SelectCommand="SELECT LastName FROM Employees">

</asp:SqlDataSource>

<!--创建GridView并且指派它的DataSourceID以匹配上面的mySqlDataSource-->

<asp:GridView

id="myGridView"

runat="server"

autogeneratecolumns="true"

DataSourceID="mySqlDataSource"/> 字串5

字串7
字串5

作为个人,我并不太看重这种方法,尽管它是微软推荐的建立你的GridView的方法。我比较喜欢更多地控制我的DataSource;因为,这样以来我能够手工过滤它的内容甚至更多,这也正是为什么我在这个商店演示程序中没有使用这个方法的原因。 

好,下面让我们继续讨论构建本文中的商店演示程序。其大致情况是,在一个页面上存在两个GridViews;你在前面已经看到这个图像。一个GridView用于显示我们的商店的产品,而其它的内容对应于购物篮。

 

你能够容易地把这两部分拆分到它们各自的页面中,但是为了简化起见,我们把这些内容放到了一起。 字串2

如果你打开Default.aspx(它包括在本文相应的zip源码文件中),你能够看到这个页面是如何建立的。

大多数HTML仅仅用于实现包装之目的;需要注意的是,位于页面顶部的声明以及主<form>标签和位于其内的<GridView>标签。 字串7

三.页面声明

<%@ page inherits="shop.site" src="cs/site.aspx.cs" %>

该页面声明简单地告诉我们的页面它属于什么命名空间和类。在这个例子中,我们的命名空间是“shop”而我们的类是“site”。还存在一个称为“src”的额外属性定义,它指向包含该站点类的普通的.cs文本文件。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经典的购物车系统: 关键词: Internet 网上书店开发 购书系统 开发一套网上购书系统,可以让顾客通过浏览器浏览网站售书目录,从而挑选自己满意的图书,并下订单购买。而网站后台人员需要维护网站会员信息、书籍信息以及订单信息。本系统的目的就是要开发一套既方便客户网上购书,又方便网站维护人员维护网站WEB服务系统。 用户信息显示: protected void Button1_Click(object sender, EventArgs e) { Book book =new Book(); DetailsViewRowCollection rows=DetailsView1.Rows; book.Bookname = rows[1].Cells[1].Text; book.Bookid =(String)rows[0].Cells[1].Text; book.Introduce = rows[8].Cells[1].Text; CartItem item = new CartItem(); item.Book = book; item.Quantity = Int32.Parse(TextBoxQuerty.Text); Profile.ShoppingCart.AddItem(item); Response.Redirect(@"~\products\CartInfor.aspx"); Labelnfor.Text ="Bookname"+ item.Book.Bookname+"<br/>数量:"+item.Quantity; } 订单生成: protected void Page_Load(object sender, EventArgs e) { ShowInfor(); } protected void Button1_Click(object sender, EventArgs e) { Response.Redirect(@"~\products\BookInforByCatalog.aspx"); } private void ShowInfor() { ListBox1.Items.Clear(); CartItem[] items = Profile.ShoppingCart.GetAllItems(); for (int i = 0; i < items.Length; ++i) { CartItem item =items[i]; String str = String.Format("Bookname:{0} Quantity:{1}",item.Book.Bookname,item.Quantity); ListBox1.Items.Add(str); } } protected void Button3_Click(object sender, EventArgs e) { ListBox1.Items.Remove(ListBox1.Items[index]); } protected void Button4_Click(object sender, EventArgs e) { ListBox1.Items.Clear(); } protected void Button2_Click(object sender, EventArgs e) { } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值