- 浏览: 82324 次
文章分类
- 全部博客 (32)
- java (32)
- java.lang.IncompatibleClassChangeError (1)
- mysql concat函数 字符串连接 (1)
- Java网络编程 (1)
- ActiveMQ中消息游标 (1)
- applicationContext-hibernate-transaction.xml (1)
- Google Chrome浏览器必备插件(附:Firefox火狐浏览器必备插件) (1)
- Oracle数据库文档构造器--Oraschemadoc (1)
- solaris essential (1)
- 使用Spring的test (1)
- org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are (1)
- 《代码之道》 (1)
- 三亚之行 (1)
- StatCVS 对使用CVS的项目进行深入统计的开源工具 (1)
- 读写PDF TIFF JPEG文件的JAVA类库 (1)
- 应用MapXtreme2004开发GIS代码(C#) 搜索TAB表中的元素 (1)
- 购物车的实现及结算处理[转] (1)
- 微软发布搜索引擎 兼谈几个搜索引擎的比较 (1)
- 对于嵌入式系统的学习 应该可以告一段落了 (1)
- 移动审批工作流设计与实现 (1)
- SIFT算法概述 (1)
- 腾讯微博java(android) sdk 话题相关api详细介绍 (1)
- No configuration found. Configuring ehcache from ehcache-failsafe.xml (1)
- memcached client -- spymemcached使用 (1)
- Simple XML (1)
- 空指针错误 java.lang.NullPointerException (1)
- 服务器重起 (1)
- Spring中Quartz的Cron表达式详解 (1)
- swt 开发 (1)
- res.sendRedirect()和req.getRequestDispatcher().forward(req (1)
- res)的区别 (1)
- JAVA类设计技巧 (1)
- java之socket编程之谈 (1)
- 总结一下iteye上的足迹 (1)
最新评论
注:此文章来自CSDN。觉得代码挺清晰的,而且可能很多人会用到购物车代码,就摘过来了。
标题 购物车的实现及结算处理 选择自 greystar 的 Blog <br>关键字 购物车的实现及结算处理 <br><br>本示例利用Session对象来实现一个简单的购物车。主要用于教学演示。
Book类<br>此类主是代表购物车的一本书<br>using System;
namespace CartTest<br>{<br>/// <summary><br>/// Books 的摘要说明。<br>/// </summary><br>public class Book<br>{<br> string bookid;<br> string title;<br> decimal price;<br> int num;
<br> public Book()<br> {<br> }
/// <summary><br> /// ID<br> /// </summary><br> public string BookID<br> {<br> get{return bookid;}<br> set{bookid=value;}<br> }<br> /// <summary><br> /// 书名<br> /// </summary><br> public string Title<br> {<br> get{return title;}<br> set{title=value;}<br> }<br><br> /// <summary><br> /// 金额<br> /// </summary><br> public decimal Price<br> {<br> get{return price;}<br> set{price=value;<br> sum=price*num;<br> }<br> }<br> /// <summary><br> /// 数量<br> /// </summary><br> public int Num<br> {<br> get{return num;}<br> set{num=value;<br> sum=price*num;<br> }<br> }<br> decimal sum=0m;<br> //一种书的总金额<br> public decimal Sum<br> {<br> get{return sum;}<br> set{sum=value;}<br> }<br>}
}
//购物车集合<br>//Books 用户所有订购的书 ,实现IEnumerable接口,我们可以将其绑定到datagrid控件<br>using System;<br>using System.Collections;<br>namespace CartTest<br>{<br>/// <summary><br>/// <br>/// </summary><br>public class Books :IEnumerable <br>{<br> Hashtable ht=null;<br> public Books()<br> {<br> ht=new Hashtable();<br><br> }
public Books(int count)<br> {<br> ht=new Hashtable(count);<br> }
public void Add(Book b)<br> {<br> //如果集合中有相同ID的书,则对书的数量进行相加<br> if(ht.ContainsKey(b.BookID))<br> {<br>((Book)ht[b.BookID]).Num=((Book)ht[b.BookID]).Num+b.Num;<br><br> }<br> else<br> {<br> ht.Add(b.BookID,b);<br> }<br> }
public void Remove(string bookid)<br> {<br> if(ht.ContainsKey(bookid))<br> ht.Remove(bookid);<br> }<br>//统计有多少种书<br> public int Count<br> {<br> get<br> {<br> return ht.Count;<br> }<br> }
public void Clear()<br> {<br> ht.Clear();<br> }
public Book this[string bookid]<br> {<br> get<br> {<br> if(ht.ContainsKey(bookid))<br> return (Book)ht[bookid];<br> return null;<br> }<br> }<br> #region IEnumerable 成员
public IEnumerator GetEnumerator()<br> {<br> // TODO: 添加 Books.GetEnumerator 实现<br> return ht.Values.GetEnumerator();<br> }
#endregion<br>}<br>}
//此页面主要是用于显示所有的书。用的是DataList来自定义显示模板。但是实际上可以使用DataGrid来处理。DataGrid也可以实现分页功能及自定义模板。只要将dDatagrid设为一个模板列,然后将DataList里的模板列代码Copy过去即可。<br>//此页面中每本书都要显示封面。这个问题我们可以通过一个过渡页来处理图片数据
<%@ Page language="c#" Codebehind="BookList.aspx.cs" AutoEventWireup="false" Inherits="CartTest.BookList" %><br><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><br><HTML><br><HEAD><br> <title>BookList</title><br> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"><br> <meta content="C#" name="CODE_LANGUAGE"><br> <meta content="JavaScript" name="vs_defaultClientScript"><br> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"><br> <LINK href="http://localhost/CartTest/StyleSheet1.css" type="text/css" rel="stylesheet"><br></HEAD><br><body MS_POSITIONING="GridLayout"><br> <form id="Form1" method="post" runat="server"><br> <asp:datalist id="DataList1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 56px" runat="server"<br> DataKeyField="BookGuid" Width="650"><br> <ItemTemplate><br> <TABLE id="Table14" cellSpacing="1" cellPadding="1" border="0"><br> <TR><br> <TD><br> <a href='<%# "BookView.aspx?BookID="+DataBinder.Eval(Container, "DataItem.BookGuid") %>'><br> <!--imageview.aspx页面专用来处理书的图片--> <asp:Image id=Image1 runat="server" Width="120px" Height="144px" ImageUrl='<%# "ImageView.aspx?imgid="+DataBinder.Eval(Container, "DataItem.BookGuid") %>'><br> </asp:Image><br> </a><br> </TD><br> <TD vAlign="top"><br> <TABLE id="Table15" cellSpacing="1" cellPadding="1" width="300" border="1"><br> <TR><br> <TD>书名:<br> <asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.BookTitle") %>'><br> </asp:Label></TD><br> </TR><br> <TR><br> <TD>图书简介:<br> <asp:Label id=Label2 style="OVERFLOW: hidden; TEXT-OVERFLOW: ellipsis" runat="server" Width="496" Text='<%# "<nobr>"+DataBinder.Eval(Container, "DataItem.BookComment")+"/<nobr>"%>' Height="50px"><br> </asp:Label></TD><br> </TR><br> <TR><br> <TD>金额:<br> <asp:Label id=Label3 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Price","{0:C}") %>'><br> </asp:Label></TD><br> </TR><br> </TABLE><br> </TD><br> </TR><br> <TR><br> <TD><br> <asp:Label id="Label4" runat="server">日期:</asp:Label><br> <asp:Label id=Label5 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.PublishDate", "{0:D}") %>'><br> </asp:Label></TD><br> <TD align="right"><br> <asp:ImageButton id="Imagebutton1" runat="server" ImageUrl="a.gif" CommandName="AddCart"></asp:ImageButton></TD><br> </TR><br> </TABLE><br> </ItemTemplate><br> <AlternatingItemTemplate><br> <TABLE id="Table4" cellSpacing="1" cellPadding="1" bgColor="#eefeff" border="0"><br> <TR><br> <TD><br> <a href='<%# "BookView.aspx?BookID="+DataBinder.Eval(Container, "DataItem.BookGuid") %>'><br><!--imageview.aspx页面专用来处理书的图片--> <asp:Image id=Image2 runat="server" Width="120px" Height="144px" ImageUrl='<%# "ImageView.aspx?imgid="+DataBinder.Eval(Container, "DataItem.BookGuid") %>'><br> </asp:Image></a></TD><br> <TD vAlign="top"><br> <TABLE id="Table5" cellSpacing="1" cellPadding="1" width="300" border="1"><br> <TR><br> <TD>书名:<br> <asp:Label id=Label6 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.BookTitle") %>'><br> </asp:Label></TD><br> </TR><br> <TR><br> <TD>图书简介:<br> <asp:Label id=Label7 style="OVERFLOW: hidden; TEXT-OVERFLOW: ellipsis" runat="server" Width="496px" Text='<%# DataBinder.Eval(Container, "DataItem.BookComment") %>' Height="50px"><br> </asp:Label></TD><br> </TR><br> <TR><br> <TD>金额:<br> <asp:Label id=Label8 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Price") %>'><br> </asp:Label></TD><br> </TR><br> </TABLE><br> </TD><br> </TR><br> <TR><br> <TD><br> <asp:Label id="Label9" runat="server">日期:</asp:Label><br> <asp:Label id=Label10 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.PublishDate") %>'><br> </asp:Label></TD><br> <TD align="right"><br> <asp:ImageButton id="Imagebutton2" runat="server" ImageUrl="a.gif"></asp:ImageButton></TD><br> </TR><br> </TABLE><br> </AlternatingItemTemplate><br> </asp:datalist></form><br></body><br></HTML>
//CS CODE<br>using System;<br>using System.Collections;<br>using System.ComponentModel;<br>using System.Data;<br>using System.Drawing;<br>using System.Web;<br>using System.Web.SessionState;<br>using System.Web.UI;<br>using System.Web.UI.WebControls;<br>using System.Web.UI.HtmlControls;<br>using System.Data.SqlClient;<br>namespace CartTest<br>{<br>/// <summary><br>/// BookList 的摘要说明。<br>/// </summary><br>public class BookList : System.Web.UI.Page<br>{<br> protected System.Web.UI.WebControls.DataList DataList1;<br><br> private void Page_Load(object sender, System.EventArgs e)<br> {<br> if(!this.IsPostBack)<br> {<br> SqlConnection cn=new SqlConnection();<br> cn.ConnectionString="server=.;uid=sa;pwd=;database=p1";<br> cn.Open();<br> SqlCommand cmd=new SqlCommand();<br> cmd.Connection=cn;<br> cmd.CommandText="select * from books ";<br> SqlDataAdapter da=new SqlDataAdapter();<br> da.SelectCommand=cmd;<br> DataSet ds=new DataSet();<br> da.Fill(ds);<br> cn.Close();<br> this.DataList1.DataSource=ds.Tables[0];<br> this.DataBind();<br> }<br> }
#region Web 窗体设计器生成的代码<br> override protected void OnInit(EventArgs e)<br> {<br> //<br> // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。<br> //<br> InitializeComponent();<br> base.OnInit(e);<br> }<br><br> /// <summary><br> /// 设计器支持所需的方法 - 不要使用代码编辑器修改<br> /// 此方法的内容。<br> /// </summary><br> private void InitializeComponent()<br> { <br> this.DataList1.ItemCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.DataList1_ItemCommand);<br> this.Load += new System.EventHandler(this.Page_Load);
}<br> #endregion
private void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)<br> {<br><br> //用户选中一本书后,默认订一本书<br> string bookGuid=this.DataList1.DataKeys[e.Item.ItemIndex].ToString();<br> Book b=new Book();<br> //首先获得自己的购物车<br> Books bs=(Books)Session["MyCart"];<br> b.BookID=bookGuid;<br> b.Num=1;<br> //根据ITEM的类型取值<br> if(e.Item.ItemType==ListItemType.Item)<br> {<br> b.Price=Convert.ToDecimal(((Label)e.Item.FindControl("Label3")).Text.Substring(1));<br> b.Title=((Label)e.Item.FindControl("Label1")).Text;<br> }<br> else if(e.Item.ItemType==ListItemType.AlternatingItem)<br> {<br> b.Price=Convert.ToDecimal(((Label)e.Item.FindControl("Label8")).Text.Substring(1));<br> b.Title=((Label)e.Item.FindControl("Label6")).Text;<br> }<br> //将书加入到购物车<br> bs.Add(b);<br> Session["MyCart"]=bs;<br> //打开购物车页面。<br> Response.Write("<script>window.open('webform1.aspx')</script>");<br> }
<br>}<br>}
<br>//图片处理页<br>using System;<br>using System.Collections;<br>using System.ComponentModel;<br>using System.Data;<br>using System.Drawing;<br>using System.Web;<br>using System.Web.SessionState;<br>using System.Web.UI;<br>using System.Web.UI.WebControls;<br>using System.Web.UI.HtmlControls;<br>using System.Data.SqlClient;<br>namespace CartTest<br>{<br>/// <summary><br>/// ImageView 的摘要说明。<br>/// </summary><br>public class ImageView : System.Web.UI.Page<br>{<br><br> private void Page_Load(object sender, System.EventArgs e)<br> {<br> SqlConnection cn=new SqlConnection();<br> cn.ConnectionString="server=.;uid=sa;pwd=;database=p1";<br> cn.Open();<br> SqlCommand cmd=new SqlCommand();<br> cmd.Connection=cn;<br> cmd.CommandText="select cover from books where bookguid='"+ this.Request.QueryString["imgid"].ToString() +"'";<br> //cmd.CommandText="select cover from books where bookguid='350bc228-a12d-4c15-b8e0-1e625e40403e'";<br> SqlDataAdapter da=new SqlDataAdapter();<br> da.SelectCommand=cmd;<br> DataSet ds=new DataSet();<br> da.Fill(ds);<br> cn.Close();<br> Response.Clear();<br> Response.ClearContent();<br> Response.ContentType="Image/jpg";<br> Response.BinaryWrite((byte[])ds.Tables[0].Rows[0][0]);
}
#region Web 窗体设计器生成的代码<br> override protected void OnInit(EventArgs e)<br> {<br> //<br> // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。<br> //<br> InitializeComponent();<br> base.OnInit(e);<br> }<br><br> /// <summary><br> /// 设计器支持所需的方法 - 不要使用代码编辑器修改<br> /// 此方法的内容。<br> /// </summary><br> private void InitializeComponent()<br> { <br> this.Load += new System.EventHandler(this.Page_Load);
}<br> #endregion<br>}<br>}
//当用户选取其中一本书时,获得用户当前选中书的ID,将此ID传到具体察看页面<br><%@ Page language="c#" Codebehind="BookView.aspx.cs" AutoEventWireup="false" Inherits="CartTest.BookView" %><br><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><br><HTML><br> <HEAD><br> <title>BookView</title><br> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"><br> <meta name="CODE_LANGUAGE" Content="C#"><br> <meta name="vs_defaultClientScript" content="JavaScript"><br> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"><br> </HEAD><br><body MS_POSITIONING="GridLayout"><br> <form id="Form1" method="post" runat="server"><br> <FONT face="宋体"><br> <asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 32px; POSITION: absolute; TOP: 24px" runat="server"<br> Width="302px" Height="35px"></asp:Label><br> <asp:Image id="Image1" style="Z-INDEX: 102; LEFT: 24px; POSITION: absolute; TOP: 72px" runat="server"<br> Width="120px" Height="136px"></asp:Image><br> <asp:Label id="Label2" style="Z-INDEX: 103; LEFT: 192px; POSITION: absolute; TOP: 88px" runat="server"<br> Width="280px"></asp:Label><br> <asp:Label id="Label4" style="Z-INDEX: 104; LEFT: 200px; POSITION: absolute; TOP: 128px" runat="server" Width="328px">Label</asp:Label><br><asp:Panel id=Panel2 style="Z-INDEX: 105; LEFT: 24px; POSITION: absolute; TOP: 220px" runat="server" Height="172px" Width="456px"></asp:Panel><br><asp:Label id=Label5 style="Z-INDEX: 106; LEFT: 200px; POSITION: absolute; TOP: 168px" runat="server" Width="336px">Label</asp:Label></FONT><br><br> </form><br></body><br></HTML>
using System;<br>using System.Collections;<br>using System.ComponentModel;<br>using System.Data;<br>using System.Drawing;<br>using System.Web;<br>using System.Web.SessionState;<br>using System.Web.UI;<br>using System.Web.UI.WebControls;<br>using System.Web.UI.HtmlControls;<br>using System.Data.SqlClient;
namespace CartTest<br>{<br>/// <summary><br>/// BookView 的摘要说明。<br>/// </summary><br>public class BookView : System.Web.UI.Page<br>{<br> protected System.Web.UI.WebControls.Label Label1;<br> protected System.Web.UI.WebControls.Image Image1;<br> protected System.Web.UI.WebControls.Label Label2;<br> protected System.Web.UI.WebControls.Label Label3;<br> protected System.Web.UI.WebControls.TextBox TextBox1;<br> protected System.Web.UI.WebControls.Label Label4;<br> protected System.Web.UI.WebControls.Panel Panel2;<br> protected System.Web.UI.WebControls.Label Label5;<br> protected System.Web.UI.WebControls.Panel Panel1;<br><br> private void Page_Load(object sender, System.EventArgs e)<br> {<br> if(!this.IsPostBack)<br> {<br> if(this.Request["BookID"]!=null)<br> {<br> this.Image1.ImageUrl="ImageView.aspx?imgid="+this.Request["BookID"].ToString();<br> SqlConnection cn=new SqlConnection();<br> cn.ConnectionString="server=.;uid=sa;pwd=;database=p1";<br> cn.Open();<br> SqlCommand cmd=new SqlCommand();<br> cmd.Connection=cn;<br> cmd.CommandText="select * from books where bookguid='"+ this.Request.QueryString["BookID"].ToString() +"'";<br> //cmd.CommandText="select cover from books where bookguid='350bc228-a12d-4c15-b8e0-1e625e40403e'";<br> SqlDataAdapter da=new SqlDataAdapter();<br> da.SelectCommand=cmd;<br> DataSet ds=new DataSet();<br> da.Fill(ds);<br> cn.Close();<br> this.Label1.Text=ds.Tables[0].Rows[0][1].ToString();<br> this.Label2.Text=ds.Tables[0].Rows[0][2].ToString();<br> this.Label4.Text=ds.Tables[0].Rows[0][3].ToString();<br> this.Panel2.Controls.Add(new LiteralControl(ds.Tables[0].Rows[0][4].ToString()));<br> }<br> }<br> }
#region Web 窗体设计器生成的代码<br> override protected void OnInit(EventArgs e)<br> {<br> //<br> // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。<br> //<br> InitializeComponent();<br> base.OnInit(e);<br> }<br><br> /// <summary><br> /// 设计器支持所需的方法 - 不要使用代码编辑器修改<br> /// 此方法的内容。<br> /// </summary><br> private void InitializeComponent()<br> { <br> this.Load += new System.EventHandler(this.Page_Load);
}<br> #endregion<br>}<br>}
<br>//购物车页面。实现此功能主要使用DataGrid来显示总计功能。
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="CartTest.WebForm1" %><br><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><br><HTML><br><HEAD><br> <title>WebForm1</title><br> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"><br> <meta name="CODE_LANGUAGE" Content="C#"><br> <meta name="vs_defaultClientScript" content="JavaScript"><br> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"><br> <script><br>//此JS主要是防止用户输入非数字<br> function checkNum()<br> {<br> var chr=String.fromCharCode(event.keyCode);<br><br> if(isNaN(chr))<br> {<br> event.keyCode=0;<br> }<br> }<br><br> </script><br></HEAD><br><body MS_POSITIONING="GridLayout"><br> <form id="Form1" method="post" runat="server"><br> <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" PageSize="15" Font-Size="XX-Small"<br> CellPadding="4" DataKeyField="BookID" BorderStyle="Solid" BorderColor="SkyBlue" BorderWidth="1px"<br> ShowFooter="True" Width="680px"><br> <ItemStyle BackColor="#EEEEEE"></ItemStyle><br> <HeaderStyle Font-Size="9pt" Font-Bold="True" BackColor="SkyBlue"></HeaderStyle><br> <Columns><br> <asp:TemplateColumn HeaderText="书名"><br> <ItemTemplate><br> <asp:Label id=Label2 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Title") %>'><br> </asp:Label><br> </ItemTemplate><br> </asp:TemplateColumn><br> <asp:TemplateColumn HeaderText="单价"><br> <ItemTemplate><br> <asp:TextBox id=txtPrice runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Price") %>' ReadOnly="True"><br> </asp:TextBox><br> </ItemTemplate><br> </asp:TemplateColumn><br> <asp:TemplateColumn HeaderText="数量"><br> <ItemTemplate><br> <asp:TextBox id=txtNum onkeypress="checkNum()" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Num") %>'><br> </asp:TextBox><br> </ItemTemplate><br> </asp:TemplateColumn><br> <asp:TemplateColumn HeaderText="总金额"><br> <ItemTemplate><br> <asp:TextBox id=txtSum runat="server" ReadOnly="True" Text='<%# DataBinder.Eval(Container, "DataItem.Sum") %>'><br> </asp:TextBox><br> </ItemTemplate><br> <FooterTemplate><br> <asp:TextBox id="txtSumPrice" runat="server" ReadOnly="True"></asp:TextBox><br> </FooterTemplate><br> </asp:TemplateColumn><br> <asp:TemplateColumn HeaderText="操作"><br> <ItemTemplate><br> <asp:LinkButton id="LinkButton1" runat="server" CommandName="editBook">修改</asp:LinkButton><FONT face="宋体">&nbsp;</FONT><br> <asp:LinkButton id="LinkButton2" runat="server" CommandName="delBook">删除</asp:LinkButton><br> </ItemTemplate><br> </asp:TemplateColumn><br> </Columns><br> <PagerStyle NextPageText="4" Font-Size="10pt" Font-Names="webdings" PrevPageText="3" BackColor="SkyBlue"></PagerStyle><br> </asp:DataGrid><br> </form><br></body><br></HTML>
//购物车察看页里的数据是Session里所存放的Books集合对象。可以将其绑定到网格控件
using System;<br>using System.Collections;<br>using System.ComponentModel;<br>using System.Data;<br>using System.Drawing;<br>using System.Web;<br>using System.Web.SessionState;<br>using System.Web.UI;<br>using System.Web.UI.WebControls;<br>using System.Web.UI.HtmlControls;<br>using System.Data.SqlClient;<br>namespace CartTest<br>{<br>/// <summary><br>/// WebForm1 的摘要说明。<br>/// </summary><br>public class WebForm1 : System.Web.UI.Page<br>{<br> protected System.Web.UI.WebControls.DataGrid DataGrid1;<br><br> private void Page_Load(object sender, System.EventArgs e)<br> {<br> if(!this.IsPostBack)<br> {<br> Books bs=(Books)Session["MyCart"];<br> this.DataGrid1.DataSource=bs;<br> this.DataBind();<br> }<br> }
#region Web 窗体设计器生成的代码<br> override protected void OnInit(EventArgs e)<br> {<br> //<br> // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。<br> //<br> InitializeComponent();<br> base.OnInit(e);<br> }<br><br> /// <summary><br> /// 设计器支持所需的方法 - 不要使用代码编辑器修改<br> /// 此方法的内容。<br> /// </summary><br> private void InitializeComponent()<br> { <br> this.DataGrid1.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemCreated);<br> this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand);<br> this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);<br> this.Load += new System.EventHandler(this.Page_Load);
}<br> #endregion
//利用此事件对网格控件的外观进行控件(合并列)<br> private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)<br> {<br> ListItemType itemType = e.Item.ItemType;<br> if (itemType == ListItemType.Footer) <br> {<br>// e.Item.BackColor = Color.SeaGreen; <br>// e.Item.Font.Bold = true;<br> e.Item.Cells.RemoveAt(0); <br> e.Item.Cells.RemoveAt(0);<br> e.Item.Cells[0].ColumnSpan = 3; <br> e.Item.Cells[0].HorizontalAlign = HorizontalAlign.Right;<br><br> } <br> }
<br> private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)<br> {<br> Books bs=(Books)Session["MyCart"];<br> if(e.CommandName=="editBook")<br> {<br> int num=Convert.ToInt16(((TextBox)e.Item.FindControl("txtNum")).Text);<br> decimal p=Convert.ToDecimal(((TextBox)e.Item.FindControl("txtPrice")).Text);<br> bs[this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString()].Sum=p*num;<br> bs[this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString()].Num=num;<br> }<br> else if(e.CommandName=="delBook")<br> {<br> bs.Remove(this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString());<br> }<br> this.DataGrid1.DataSource=bs;<br> this.DataBind();<br> Session["MyCart"]=bs;<br> }
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)<br> {<br> ListItemType itemType = e.Item.ItemType;<br> if (itemType == ListItemType.Footer) <br> {<br> decimal sum=0;<br> foreach(DataGridItem item in this.DataGrid1.Items)<br> {<br> decimal p=Convert.ToDecimal(((TextBox) item.FindControl("txtPrice")).Text);<br> int n=Convert.ToInt16(((TextBox) item.FindControl("txtNum")).Text);<br> sum+=p*n;<br> }<br> ((TextBox)e.Item.FindControl("txtSumPrice")).Text=sum.ToString();<br><br><br><br> } <br> }<br>}<br>}
<br>此外我们还要在Global.asax.CS文件中将变量进行初始化,确保每个客户端访问网站时都有一个购物车,当然里面是没有书的。
此购物车实现的原理很简单.首先自己定义一个货物类,及货物集合类(实现IEnumerable集合).当每个用户进入到网站时,首先给其分配一个空的购物车。当用户在购物页面选取一个货物时,取得该货物,同时获得自己的购物车,将货物保存到购物车中,最后再保存购物车。如果用户要对购物车中的内容进行修改也是一样的原理。而且在购物车察看页。我们则将自己生成的集合类对象绑定到我们的页面中。利用网格窗控年的一此事件来处理货物统计的问题。
希望这样一个思路能对您有所帮助。
作者Blog:http://blog.csdn.net/greystar/<br>
发表评论
-
总结一下iteye上的足迹
2012-02-08 14:57 752<span style="bac ... -
java之socket编程之谈
2012-02-08 13:43 923<span style="col ... -
JAVA类设计技巧
2012-02-04 15:24 8011.一定要将数据设计为private 2.一定要 ... -
res.sendRedirect()和req.getRequestDispatcher().forward(req,res)的区别
2012-02-04 11:34 3235res.sendRedirect()=重定向 ... -
swt 开发
2012-02-03 17:14 8991. 下载 eclipse 3.7 2. 安装 goo ... -
Spring中Quartz的Cron表达式详解
2012-02-03 15:39 845<table style="& ... -
服务器重起
2012-02-03 14:54 605内报:141 外报:143,133 ? 外服:128 ... -
空指针错误 java.lang.NullPointerException
2012-02-02 14:44 876使用 ... -
Simple XML
2012-02-01 10:04 933<p style=""> ... -
memcached client -- spymemcached使用
2012-02-01 09:49 1279<a href="http://blo ... -
No configuration found. Configuring ehcache from ehcache-failsafe.xml
2011-12-28 13:23 1092<span style="font-f ... -
腾讯微博java(android) sdk 话题相关api详细介绍
2011-12-28 11:39 751<span style="font-f ... -
SIFT算法概述
2011-12-21 09:44 950<span></span> & ... -
移动审批工作流设计与实现
2011-12-20 10:59 1136<p style="text-ind ... -
对于嵌入式系统的学习 应该可以告一段落了
2011-12-19 10:19 671最近看了些关于嵌入式系统的资料,脑袋里对嵌入式开发的概 ... -
微软发布搜索引擎 兼谈几个搜索引擎的比较
2011-12-17 10:44 792微软于昨天(11月11日)正式发布其搜索引擎。这个是网 ... -
应用MapXtreme2004开发GIS代码(C#) 搜索TAB表中的元素
2011-12-15 12:09 884</span></span>& ... -
读写PDF TIFF JPEG文件的JAVA类库
2011-12-14 09:49 3017这几种常见文件格式的读写类库,有人收集好了,详见下面网 ... -
StatCVS 对使用CVS的项目进行深入统计的开源工具
2011-12-14 09:19 699这个工具很好,主要是分析cvs的log得出统计结果,以 ... -
三亚之行
2011-12-13 15:29 605三亚的确是个不错的地方,人民热情,空气好,风景也好。山 ...
相关推荐
Swift 购物车框架,展示了购物车的处理逻辑,实现思路
通过ajax实现添加和删除车上的物品。 . 删除的物品会显示出来,可以重新添加到购物车。 . 嗯…没有了,具体大家接着看吧。 购物车的结构我打算用一个table来展示,在UserControl里使用ListView展现购物车的物品...
本项目使用vuejs实现一个单一页面上数据处理,实现购物车的效果
说明 这是一个具备常规功能并方便改造的购物车模型 一共...首先将工程里边的JVShopcart文件夹拖入你的项目 然后就是开源库Vendor文件夹根据需求处理 Model是一定会改的 但是购物车的Model大同小异 其他的改动不会太大
该程序通过创建商品列表和购物车列表,实现了商品的展示、添加到购物车以及结算等功能。用户可以通过界面选择商品,并将其添加到购物车中,程序会自动计算商品的数量、单价和总价,并在结算时显示总金额,以便用户...
实现了商品的展示、商品分类查询、关键字搜索商品、商品详细信息展示、登录、注册、用户购物车、订单结算、用户订单、用户收藏列表以及错误处理功能。 后端采取了MVC模式,根据前端需要的数据分模块设计了相应的接口...
使用expandable完成电商项目常用的购物车模块,里面涵盖了大部分的常见功能,删除,增减,结算,多店铺多商品的逻辑处理优化,欢迎下载!
实现了商品的展示、商品分类查询、关键字搜索商品、商品详细信息展示、登录、注册、用户购物车、订单结算、用户订单、用户收藏列表以及错误处理功能。后端采取了MVC模式,根据前端需要的数据分模块设计了相应的接口...
高仿小米商城 本项目前后端分离,前端基于Vue+Vue-router+Vuex+...实现了商品的展示、商品分类查询、关键字搜索商品、商品详细信息展示、登录、注册、用户购物车、订单结算、用户订单、用户收藏列表以及错误处理功能。
1、实现简单的登录处理 题目:实现简单的登录处理 目的:熟悉JSP运行环境的配置,学会简单的输入页面、处理程序的设计。 要求:该登录页面使用表格排版,包括用户名、用户密码和用户类型等信息;其中用户类型可以...
实现了商品的展示、商品分类查询、关键字搜索商品、商品详细信息展示、登录、注册、用户购物车、订单结算、用户订单、用户收藏列表以及错误处理功能。 后端采取了MVC模式,根据前端需要的数据分模块设计了相应的...
4、删除商品(暂未实现); 5、结算。 二、主要技术点 很简单额一个购物车,也没有什么特别技术,就是很简单的tableView的使用。 * tableView的规范化使用,数据源的处理; * 自定义tableView的...
通过结合后端的SSM(Spring+Spring MVC+MyBatis)框架和前端的Vue.js框架,系统实现了快餐点餐、订单管理和结算功能,并提供了简洁、直观的用户界面。 主要特性包括: 菜单展示与点餐:系统展示了快餐店的菜单,...
实现了商品的展示、商品分类查询、关键字搜索商品、商品详细信息展示、登录、注册、用户购物车、订单结算、用户订单、用户收藏列表以及错误处理功能。 后端采取了MVC模式,根据前端需要的数据分模块设计了相应的...
最新SSM项目快餐店点餐结算系统的设计与实现Vue.zip是一个面向快餐行业的点餐与结算管理平台。该项目以Spring Spring MVC MyBatis作为后端技术架构,并结合前端Vue.js技术,旨在为快餐店提供一套便捷、高效的订单...
该项目主要实现了宠物商品的展示、购物车管理、订单处理等功能,为宠物爱好者提供了一个便捷的在线购物平台。技术栈:该项目采用了SpringBoot作为后端开发框架,利用其自动配置、简化开发流程的特点,快速搭建项目...
购物车管理:用户可以将喜欢的水果添加到购物车,并在结算时一次性购买。订单管理:用户可以查看自己的订单历史,以及订单的状态(如待付款、已发货等)。管理员功能:管理员可以管理商品信息,如添加新水果、修改...
实现了商品的展示、商品分类查询、关键字搜索商品、商品详细信息展示、登录、注册、用户购物车、订单结算、用户订单、用户收藏列表以及错误处理功能。 后端采取了MVC模式,根据前端需要的数据分模块设计了相应的...
实现了商品的展示、商品分类查询、关键字搜索商品、商品详细信息展示、登录、注册、用户购物车、订单结算、用户订单、用户收藏列表以及错误处理功能 后台:实现了 销售额显示 订单显示 饼状图 曲线 轮播图管理 ...