ASP.NET购物车的实现及结算处理<script language='javascript' src='www.shiqiaotou/donetk/Header.js'></script>
本⽰例利⽤Session对象来实现⼀个简单的购物车。主要⽤于教学演⽰。
Book类
此类主是代表购物车的⼀本书
using System;
namespace CartTest
{
/// <summary>
/// Books 的摘要说明。
/// </summary>
public class Book
{
string bookid;
string title;
decimal price;
int num;
public Book()
{
}
/// <summary>
/// ID
/// </summary>
public string BookID  {
get{return bookid;}  set{bookid=value;}  }
/// <summary>
/// 书名
/// </summary>
public string Title
{
get{return title;}
set{title=value;}
}
/// <summary>
/
// ⾦额
/// </summary>
public decimal Price  {
get{return price;}
set{price=value;
sum=price*num;
}
}
/// <summary>
/// 数量
js购物车结算代码/// </summary>
public int Num
{
get{return num;}
set{num=value;
sum=price*num;
}
}
decimal sum=0m;
//⼀种书的总⾦额
public decimal Sum  {
get{return sum;}
set{sum=value;}
}
}
}
//购物车集合
//Books ⽤户所有订购的书 ,实现IEnumerable接⼝,我们可以将其绑定到datagrid控件using System;
using System.Collections;
namespace CartTest
{
/// <summary>
///
/
// </summary>
public class Books :IEnumerable
{
Hashtable ht=null;
public Books()
{
ht=new Hashtable();
}
public Books(int count)
{
ht=new Hashtable(count);
}
public void Add(Book b)
{
//如果集合中有相同ID的书,则对书的数量进⾏相加
if(ht.ContainsKey(b.BookID))
{
((Book)ht[b.BookID]).Num=((Book)ht[b.BookID]).Num+b.Num;
}
else
{
ht.Add(b.BookID,b);
}
}
public void Remove(string bookid)
{
if(ht.ContainsKey(bookid))
ht.Remove(bookid);
}
//统计有多少种书
public int Count
{
get
{
return ht.Count;
}
}
public void Clear()
{
ht.Clear();
}
public Book this[string bookid]
{
get
{
if(ht.ContainsKey(bookid))
return (Book)ht[bookid];
return null;
}
}
#region IEnumerable 成员
public IEnumerator GetEnumerator()
{
// TODO:  添加 Books.GetEnumerator 实现
return ht.Values.GetEnumerator();
}
#endregion
}
}
//此页⾯主要是⽤于显⽰所有的书。⽤的是DataList来⾃定义显⽰模板。但是实际上可以使⽤DataGrid来处理。DataGrid也可以实现分页功能及⾃定义模板。只要将dDatagrid设为⼀个模板列,然后将DataList⾥的模板列代码Copy过去即可。
//此页⾯中每本书都要显⽰封⾯。这个问题我们可以通过⼀个过渡页来处理图⽚数据
//CS CODE
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace CartTest
{
/// <summary>
/
// BookList 的摘要说明。
/// </summary>
public class BookList : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataList DataList1;
private void Page_Load(object sender, System.EventArgs e)  {
if(!this.IsPostBack)
{
SqlConnection cn=new SqlConnection();
cn.ConnectionString="server=.;uid=sa;pwd=;database=p1";    cn.Open();
SqlCommand cmd=new SqlCommand();
cmd.Connection=cn;
cmd.CommandText="select * from books ";
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=cmd;
DataSet ds=new DataSet();
da.Fill(ds);
cn.Close();
this.DataList1.DataSource=ds.Tables[0];
this.DataBind();
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。