显示商品页面
1
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
shopCart.aspx.cs
"
Inherits
=
"
shopCart
"
%>
2
3 <! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
4
5 < html xmlns = " http://www.w3.org/1999/xhtml " >
6 < head runat = " server " >
7 < title > 无标题页 </ title >
8 </ head >
9 < body >
10 < form id = " form1 " runat = " server " >
11 < table border = " 1 " width = " 100% " >
12 < tr >
13 < td >
14 < table >
15 < tr >
16 < td > 类别名称: </ td >
17 </ tr >
18 < asp:Repeater ID = " RepProductType " runat = " server " >
19 < ItemTemplate >
20 < tr >
21 < td >< a href = ' <%#"shopCart.aspx?productTypeID="+Eval("productTypeID")%> ' ><% #Eval( " productTypeName " ) %></ a ></ td >
22 </ tr >
23 </ ItemTemplate >
24 </ asp:Repeater >
25 </ table >
26 </ td >
27 < td >
28 < asp:DataList ID = " DataList1 " runat = " server " RepeatColumns = " 3 "
29 RepeatDirection = " Horizontal " Width = " 760px " >
30 < ItemTemplate >
31 < table border = " 0 " cellpadding = " 3 " cellspacing = " 2 " >
32 < tr >
33 < td colspan = " 2 " >< img src = ' UploadImages/<%#Eval("productPic") %> ' width = " 150 " height = " 150 " /></ td >
34 </ tr >
35 < tr >
36 < td ><% #Eval( " productName " ) %></ td >
37 < td >< a href = ' <%#"shopCart1.aspx?productID="+Eval("productID") %> ' > 购买 </ a ></ td >
38 </ tr >
39 </ table >
40 </ ItemTemplate >
41 </ asp:DataList >
42 </ td >
43 </ tr >
44 </ table >
45 </ form >
46 </ body >
47 </ html >
2
3 <! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
4
5 < html xmlns = " http://www.w3.org/1999/xhtml " >
6 < head runat = " server " >
7 < title > 无标题页 </ title >
8 </ head >
9 < body >
10 < form id = " form1 " runat = " server " >
11 < table border = " 1 " width = " 100% " >
12 < tr >
13 < td >
14 < table >
15 < tr >
16 < td > 类别名称: </ td >
17 </ tr >
18 < asp:Repeater ID = " RepProductType " runat = " server " >
19 < ItemTemplate >
20 < tr >
21 < td >< a href = ' <%#"shopCart.aspx?productTypeID="+Eval("productTypeID")%> ' ><% #Eval( " productTypeName " ) %></ a ></ td >
22 </ tr >
23 </ ItemTemplate >
24 </ asp:Repeater >
25 </ table >
26 </ td >
27 < td >
28 < asp:DataList ID = " DataList1 " runat = " server " RepeatColumns = " 3 "
29 RepeatDirection = " Horizontal " Width = " 760px " >
30 < ItemTemplate >
31 < table border = " 0 " cellpadding = " 3 " cellspacing = " 2 " >
32 < tr >
33 < td colspan = " 2 " >< img src = ' UploadImages/<%#Eval("productPic") %> ' width = " 150 " height = " 150 " /></ td >
34 </ tr >
35 < tr >
36 < td ><% #Eval( " productName " ) %></ td >
37 < td >< a href = ' <%#"shopCart1.aspx?productID="+Eval("productID") %> ' > 购买 </ a ></ td >
38 </ tr >
39 </ table >
40 </ ItemTemplate >
41 </ asp:DataList >
42 </ td >
43 </ tr >
44 </ table >
45 </ form >
46 </ body >
47 </ html >
购物车前台代码
1
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
shopCart1.aspx.cs
"
Inherits
=
"
shopCart1
"
%>
2
3 <! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
4
5 < html xmlns = " http://www.w3.org/1999/xhtml " >
6 < head runat = " server " >
7 < title > 无标题页 </ title >
8 </ head >
9 < body >
10 < form id = " form1 " runat = " server " >
11 < table border = " 1 " >
12 < tr >
13 < td > 商品号 </ td >
14 < td > 商品名 </ td >
15 < td > 单价 </ td >
16 < td > 类型号 </ td >
17 < td > 图片 </ td >
18 < td > 购买数量 </ td >
19 < td > 小计 </ td >
20 < td > 更改数量 </ td >
21 < td > 放回原处 </ td >
22 </ tr >
23 < asp:Repeater ID = " Repeater1 " runat = " server "
24 onitemcommand = " Repeater1_ItemCommand " onitemdatabound = " Repeater1_ItemDataBound " >
25 < ItemTemplate >
26 < tr >
27 < td >
28 < asp:Literal ID = " LitProductID " runat = " server " Text = ' <%#Eval("productID")%> ' ></ asp:Literal ></ td >
29 < td ><% #Eval( " productName " ) %></ td >
30 < td ><% #Eval( " unitPrice " ) %></ td >
31 < td ><% #Eval( " productTypeID " ) %></ td >
32 < td >< img width = " 80 " height = " 80 " src = ' <%#"UploadImages/"+Eval("productPic") %> ' /></ td >
33 < td id = " TDcount " runat = " server " >
34 < asp:Label ID = " LblBuyCount " runat = " server " Text = ' <%#Eval("buyCount")%> ' ></ asp:Label >
35 < asp:TextBox ID = " TxtBuyCount " Visible = " false " runat = " server " Text = ' <%#Eval("buyCount")%> ' ></ asp:TextBox >
36 </ td >
37 < td ><% #Eval( " subtotal " ) %></ td >
38 < td >
39 < asp:HyperLink ID = " HLUpdateBuyCount " runat = " server " NavigateUrl = ' <%#"shopCart1.aspx?cartProductID="+Eval("productID") %> ' > 更改数量 </ asp:HyperLink >
40 < asp:LinkButton ID = " LBtnUpdate " runat = " server " Visible = " false " onclick = " LBtnUpdate_Click " > 更改 </ asp:LinkButton >
41 < asp:LinkButton ID = " LBtnCancel " runat = " server " Visible = " false " onclick = " LBtnCancel_Click " > 取消 </ asp:LinkButton >
42 </ td >
43 < td >< asp:ImageButton ID = " ImgDel " title = " 删除 " CommandName = " delete " ImageUrl = " Admin/HXImages/del.gif " runat = " server " /></ td >
44 </ tr >
45 </ ItemTemplate >
46 </ asp:Repeater >
47 < tr >
48 < td colspan = " 8 " align = " right " > 总计: </ td >
49 < td >
50 < asp:Label ID = " LblTotal " runat = " server " Text = " Label " ></ asp:Label ></ td >
51 </ tr >
52 </ table >
53 < a href = " shopCart.aspx " > 继续购物 </ a >
54 </ form >
55 </ body >
56 </ html >
57
2
3 <! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
4
5 < html xmlns = " http://www.w3.org/1999/xhtml " >
6 < head runat = " server " >
7 < title > 无标题页 </ title >
8 </ head >
9 < body >
10 < form id = " form1 " runat = " server " >
11 < table border = " 1 " >
12 < tr >
13 < td > 商品号 </ td >
14 < td > 商品名 </ td >
15 < td > 单价 </ td >
16 < td > 类型号 </ td >
17 < td > 图片 </ td >
18 < td > 购买数量 </ td >
19 < td > 小计 </ td >
20 < td > 更改数量 </ td >
21 < td > 放回原处 </ td >
22 </ tr >
23 < asp:Repeater ID = " Repeater1 " runat = " server "
24 onitemcommand = " Repeater1_ItemCommand " onitemdatabound = " Repeater1_ItemDataBound " >
25 < ItemTemplate >
26 < tr >
27 < td >
28 < asp:Literal ID = " LitProductID " runat = " server " Text = ' <%#Eval("productID")%> ' ></ asp:Literal ></ td >
29 < td ><% #Eval( " productName " ) %></ td >
30 < td ><% #Eval( " unitPrice " ) %></ td >
31 < td ><% #Eval( " productTypeID " ) %></ td >
32 < td >< img width = " 80 " height = " 80 " src = ' <%#"UploadImages/"+Eval("productPic") %> ' /></ td >
33 < td id = " TDcount " runat = " server " >
34 < asp:Label ID = " LblBuyCount " runat = " server " Text = ' <%#Eval("buyCount")%> ' ></ asp:Label >
35 < asp:TextBox ID = " TxtBuyCount " Visible = " false " runat = " server " Text = ' <%#Eval("buyCount")%> ' ></ asp:TextBox >
36 </ td >
37 < td ><% #Eval( " subtotal " ) %></ td >
38 < td >
39 < asp:HyperLink ID = " HLUpdateBuyCount " runat = " server " NavigateUrl = ' <%#"shopCart1.aspx?cartProductID="+Eval("productID") %> ' > 更改数量 </ asp:HyperLink >
40 < asp:LinkButton ID = " LBtnUpdate " runat = " server " Visible = " false " onclick = " LBtnUpdate_Click " > 更改 </ asp:LinkButton >
41 < asp:LinkButton ID = " LBtnCancel " runat = " server " Visible = " false " onclick = " LBtnCancel_Click " > 取消 </ asp:LinkButton >
42 </ td >
43 < td >< asp:ImageButton ID = " ImgDel " title = " 删除 " CommandName = " delete " ImageUrl = " Admin/HXImages/del.gif " runat = " server " /></ td >
44 </ tr >
45 </ ItemTemplate >
46 </ asp:Repeater >
47 < tr >
48 < td colspan = " 8 " align = " right " > 总计: </ td >
49 < td >
50 < asp:Label ID = " LblTotal " runat = " server " Text = " Label " ></ asp:Label ></ td >
51 </ tr >
52 </ table >
53 < a href = " shopCart.aspx " > 继续购物 </ a >
54 </ form >
55 </ body >
56 </ html >
57
购物车后台代码
1
using
System;
2 using System.Collections;
3 using System.Configuration;
4 using System.Data;
5 using System.Linq;
6 using System.Web;
7 using System.Web.Security;
8 using System.Web.UI;
9 using System.Web.UI.HtmlControls;
10 using System.Web.UI.WebControls;
11 using System.Web.UI.WebControls.WebParts;
12 using System.Xml.Linq;
13 using System.Text;
14
15 public partial class ShopCart2 : System.Web.UI.Page
16 {
17 string sql = null ;
18 DataSet ds = new DataSet();
19 protected void Page_Load( object sender, EventArgs e)
20 {
21 if ( ! IsPostBack)
22 {
23 if (productID != null )
24 {
25 GetShopCart();
26 }
27 else
28 {
29 Response.Redirect( " shopCart.aspx " );
30 }
31 }
32 }
33 #region // Create a shopCart and put the product into it
34 void GetShopCart()
35 {
36 if (Session[ " shopCart " ] == null || Session[ " shopCart " ] == "" )
37 {
38 // there has no cart
39 CreateCartTable();
40 }
41 // there has a cart
42 PutInShopCart();
43 }
44 void PutInShopCart()
45 {
46 DataTable dt = new DataTable( " myTable " );
47 dt = (DataTable)Session[ " shopCart " ];
48 bool hasone = false ;
49 foreach (DataRow dr in dt.Rows)
50 {
51 if ( int .Parse(productID) == Convert.ToInt32(dr[ " productID " ]))
52 {
53 // select the same product
54 // buyCount plus one
55 dr[ " buyCount " ] = Convert.ToInt32(dr[ " buyCount " ]) + 1 ;
56 dr[ " subtotal " ] = Convert.ToInt32(dr[ " buyCount " ]) * Convert.ToDecimal(dr[ " unitPrice " ]);
57 hasone = true ;
58 break ;
59 }
60 else
61 {
62 hasone = false ;
63 }
64 }
65 if (hasone == false )
66 {
67 // put the product into dt
68 sql = string .Format( " select * from productTable where productID={0} " , int .Parse(Request.QueryString[ " productID " ]));
69 DataTable productTable = DataBase.ExecuteDataSet(sql).Tables[ 0 ];
70 DataRow rows;
71 rows = new DataTable( " cartTable " ).NewRow();
72 int productID = Convert.ToInt32(productTable.Rows[ 0 ][ " productID " ]);
73 string productName = productTable.Rows[ 0 ][ " productID " ].ToString();
74 Decimal unitPrice = Convert.ToDecimal(productTable.Rows[ 0 ][ " unitPrice " ]);
75 int productTypeID = Convert.ToInt32(productTable.Rows[ 0 ][ " productTypeID " ]);
76 string productPic = productTable.Rows[ 0 ][ " productPic " ].ToString();
77 int buyCount = 1 ;
78 Decimal subtotal = buyCount * unitPrice;
79 dt.Rows.Add(productID, productName, unitPrice, productTypeID, productPic, buyCount, subtotal);
80 }
81 Session[ " shopCart " ] = dt;
82 Repeater1.DataSource = dt.DefaultView;
83 Repeater1.DataBind();
84 GetTotal();
85 }
86 void CreateCartTable()
87 {
88 DataTable dtCart = new DataTable( " cartTable " );
89 DataColumn dc;
90 dc = new DataColumn( " productID " , System.Type.GetType( " System.Int32 " ));
91 dtCart.Columns.Add(dc);
92 dc = new DataColumn( " productName " , System.Type.GetType( " System.String " ));
93 dtCart.Columns.Add(dc);
94 dc = new DataColumn( " unitPrice " , System.Type.GetType( " System.Decimal " ));
95 dtCart.Columns.Add(dc);
96 dc = new DataColumn( " productTypeID " , System.Type.GetType( " System.Int32 " ));
97 dtCart.Columns.Add(dc);
98 dc = new DataColumn( " productPic " , System.Type.GetType( " System.String " ));
99 dtCart.Columns.Add(dc);
100 dc = new DataColumn( " buyCount " , System.Type.GetType( " System.Int32 " ));
101 dtCart.Columns.Add(dc);
102 dc = new DataColumn( " subtotal " , System.Type.GetType( " System.Decimal " ));
103 dtCart.Columns.Add(dc);
104 ds.Tables.Add(dtCart);
105
106 // DataRow dr;
107 // dr = new DataTable("cartTable").NewRow();
108 // int productID = Convert.ToInt32(ds.Tables["productTable"].Rows[0]["productID"]);
109 // string productName = ds.Tables["productTable"].Rows[0]["productID"].ToString();
110 // Decimal unitPrice = Convert.ToDecimal(ds.Tables["productTable"].Rows[0]["unitPrice"]);
111 // int productTypeID = Convert.ToInt32(ds.Tables["productTable"].Rows[0]["productTypeID"]);
112 // string productPic = ds.Tables["productTable"].Rows[0]["productPic"].ToString();
113 // int buyCount = 1;
114 // Decimal subtotal = buyCount * unitPrice;
115 // dtCart.Rows.Add(productID, productName, unitPrice, productTypeID, productPic, buyCount, subtotal);
116 Session[ " shopCart " ] = dtCart;
117 Repeater1.DataSource = dtCart.DefaultView;
118 Repeater1.DataBind();
119 }
120 #endregion
121 protected void Repeater1_ItemDataBound( object sender, RepeaterItemEventArgs e)
122 {
123 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
124 {
125 ((ImageButton)e.Item.FindControl( " ImgDel " )).Attributes.Add( " onclick " , " return confirm('确定要删除吗?') " );
126 string nowProID = ((Literal)e.Item.FindControl( " LitProductID " )).Text.ToString();
127 ((TextBox)e.Item.FindControl( " TxtBuyCount " )).Attributes.Add( " onfocus " , " TxtBuyCountOnfocus( " + nowProID + " ) " );
128 }
129 }
130 protected void Repeater1_ItemCommand( object source, RepeaterCommandEventArgs e)
131 {
132 int proID = Convert.ToInt32(((Literal)e.Item.FindControl( " LitProductID " )).Text.ToString());
133 DataTable dt = (DataTable)Session[ " shopCart " ];
134 for ( int i = 0 ; i < dt.Rows.Count; i ++ )
135 {
136 if (Convert.ToInt32(dt.Rows[i][ " productID " ]) == proID)
137 {
138 // delete this row
139 dt.Rows.RemoveAt(i);
140 }
141 }
142 Session[ " shopCart " ] = dt;
143 Repeater1.DataSource = dt.DefaultView;
144 Repeater1.DataBind();
145 GetTotal();
146 }
147 void GetTotal()
148 {
149 decimal total = 0 ;
150 DataTable dt = (DataTable)Session[ " shopCart " ];
151 for ( int i = 0 ; i < dt.Rows.Count; i ++ )
152 {
153 total += Convert.ToDecimal(dt.Rows[i][ " subtotal " ]);
154 }
155 LblTotal.Text = total.ToString();
156 }
157 #region // update your buy products' count
158 protected void TxtBuyCount_TextChanged( object sender, EventArgs e)
159 {
160 DataTable dt = (DataTable)Session[ " shopCart " ];
161 // 找出当前文本框所在行的productID来
162 int cartProductID = Convert.ToInt32(TxtProductID.Text);
163 bool b = true ;
164 for ( int i = 0 ; i < Repeater1.Items.Count; i ++ )
165 {
166 if (Convert.ToInt32(((Literal)Repeater1.Items[i].FindControl( " LitProductID " )).Text) == cartProductID)
167 {
168 try
169 {
170 int nowBuyCount = Convert.ToInt32(((TextBox)Repeater1.Items[i].FindControl( " TxtBuyCount " )).Text);
171 dt.Rows[i][ " buyCount " ] = nowBuyCount.ToString();
172 dt.Rows[i][ " subtotal " ] = Convert.ToInt32(dt.Rows[i][ " unitPrice " ]) * nowBuyCount;
173 }
174 catch
175 {
176 Response.Write( " <script>alert('数量输入有误!');</script> " );
177 b = false ;
178 }
179 Repeater1.DataSource = dt.DefaultView;
180 Repeater1.DataBind();
181 GetTotal();
182 if (b)
183 {
184 Response.Write( " <script>alert('数量修改成功!');</script> " );
185 }
186 }
187 }
188 }
189 #endregion
190
191 public string productID
192 {
193 get
194 {
195 return Request.QueryString[ " productID " ];
196 }
197 }
198 }
199
2 using System.Collections;
3 using System.Configuration;
4 using System.Data;
5 using System.Linq;
6 using System.Web;
7 using System.Web.Security;
8 using System.Web.UI;
9 using System.Web.UI.HtmlControls;
10 using System.Web.UI.WebControls;
11 using System.Web.UI.WebControls.WebParts;
12 using System.Xml.Linq;
13 using System.Text;
14
15 public partial class ShopCart2 : System.Web.UI.Page
16 {
17 string sql = null ;
18 DataSet ds = new DataSet();
19 protected void Page_Load( object sender, EventArgs e)
20 {
21 if ( ! IsPostBack)
22 {
23 if (productID != null )
24 {
25 GetShopCart();
26 }
27 else
28 {
29 Response.Redirect( " shopCart.aspx " );
30 }
31 }
32 }
33 #region // Create a shopCart and put the product into it
34 void GetShopCart()
35 {
36 if (Session[ " shopCart " ] == null || Session[ " shopCart " ] == "" )
37 {
38 // there has no cart
39 CreateCartTable();
40 }
41 // there has a cart
42 PutInShopCart();
43 }
44 void PutInShopCart()
45 {
46 DataTable dt = new DataTable( " myTable " );
47 dt = (DataTable)Session[ " shopCart " ];
48 bool hasone = false ;
49 foreach (DataRow dr in dt.Rows)
50 {
51 if ( int .Parse(productID) == Convert.ToInt32(dr[ " productID " ]))
52 {
53 // select the same product
54 // buyCount plus one
55 dr[ " buyCount " ] = Convert.ToInt32(dr[ " buyCount " ]) + 1 ;
56 dr[ " subtotal " ] = Convert.ToInt32(dr[ " buyCount " ]) * Convert.ToDecimal(dr[ " unitPrice " ]);
57 hasone = true ;
58 break ;
59 }
60 else
61 {
62 hasone = false ;
63 }
64 }
65 if (hasone == false )
66 {
67 // put the product into dt
68 sql = string .Format( " select * from productTable where productID={0} " , int .Parse(Request.QueryString[ " productID " ]));
69 DataTable productTable = DataBase.ExecuteDataSet(sql).Tables[ 0 ];
70 DataRow rows;
71 rows = new DataTable( " cartTable " ).NewRow();
72 int productID = Convert.ToInt32(productTable.Rows[ 0 ][ " productID " ]);
73 string productName = productTable.Rows[ 0 ][ " productID " ].ToString();
74 Decimal unitPrice = Convert.ToDecimal(productTable.Rows[ 0 ][ " unitPrice " ]);
75 int productTypeID = Convert.ToInt32(productTable.Rows[ 0 ][ " productTypeID " ]);
76 string productPic = productTable.Rows[ 0 ][ " productPic " ].ToString();
77 int buyCount = 1 ;
78 Decimal subtotal = buyCount * unitPrice;
79 dt.Rows.Add(productID, productName, unitPrice, productTypeID, productPic, buyCount, subtotal);
80 }
81 Session[ " shopCart " ] = dt;
82 Repeater1.DataSource = dt.DefaultView;
83 Repeater1.DataBind();
84 GetTotal();
85 }
86 void CreateCartTable()
87 {
88 DataTable dtCart = new DataTable( " cartTable " );
89 DataColumn dc;
90 dc = new DataColumn( " productID " , System.Type.GetType( " System.Int32 " ));
91 dtCart.Columns.Add(dc);
92 dc = new DataColumn( " productName " , System.Type.GetType( " System.String " ));
93 dtCart.Columns.Add(dc);
94 dc = new DataColumn( " unitPrice " , System.Type.GetType( " System.Decimal " ));
95 dtCart.Columns.Add(dc);
96 dc = new DataColumn( " productTypeID " , System.Type.GetType( " System.Int32 " ));
97 dtCart.Columns.Add(dc);
98 dc = new DataColumn( " productPic " , System.Type.GetType( " System.String " ));
99 dtCart.Columns.Add(dc);
100 dc = new DataColumn( " buyCount " , System.Type.GetType( " System.Int32 " ));
101 dtCart.Columns.Add(dc);
102 dc = new DataColumn( " subtotal " , System.Type.GetType( " System.Decimal " ));
103 dtCart.Columns.Add(dc);
104 ds.Tables.Add(dtCart);
105
106 // DataRow dr;
107 // dr = new DataTable("cartTable").NewRow();
108 // int productID = Convert.ToInt32(ds.Tables["productTable"].Rows[0]["productID"]);
109 // string productName = ds.Tables["productTable"].Rows[0]["productID"].ToString();
110 // Decimal unitPrice = Convert.ToDecimal(ds.Tables["productTable"].Rows[0]["unitPrice"]);
111 // int productTypeID = Convert.ToInt32(ds.Tables["productTable"].Rows[0]["productTypeID"]);
112 // string productPic = ds.Tables["productTable"].Rows[0]["productPic"].ToString();
113 // int buyCount = 1;
114 // Decimal subtotal = buyCount * unitPrice;
115 // dtCart.Rows.Add(productID, productName, unitPrice, productTypeID, productPic, buyCount, subtotal);
116 Session[ " shopCart " ] = dtCart;
117 Repeater1.DataSource = dtCart.DefaultView;
118 Repeater1.DataBind();
119 }
120 #endregion
121 protected void Repeater1_ItemDataBound( object sender, RepeaterItemEventArgs e)
122 {
123 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
124 {
125 ((ImageButton)e.Item.FindControl( " ImgDel " )).Attributes.Add( " onclick " , " return confirm('确定要删除吗?') " );
126 string nowProID = ((Literal)e.Item.FindControl( " LitProductID " )).Text.ToString();
127 ((TextBox)e.Item.FindControl( " TxtBuyCount " )).Attributes.Add( " onfocus " , " TxtBuyCountOnfocus( " + nowProID + " ) " );
128 }
129 }
130 protected void Repeater1_ItemCommand( object source, RepeaterCommandEventArgs e)
131 {
132 int proID = Convert.ToInt32(((Literal)e.Item.FindControl( " LitProductID " )).Text.ToString());
133 DataTable dt = (DataTable)Session[ " shopCart " ];
134 for ( int i = 0 ; i < dt.Rows.Count; i ++ )
135 {
136 if (Convert.ToInt32(dt.Rows[i][ " productID " ]) == proID)
137 {
138 // delete this row
139 dt.Rows.RemoveAt(i);
140 }
141 }
142 Session[ " shopCart " ] = dt;
143 Repeater1.DataSource = dt.DefaultView;
144 Repeater1.DataBind();
145 GetTotal();
146 }
147 void GetTotal()
148 {
149 decimal total = 0 ;
150 DataTable dt = (DataTable)Session[ " shopCart " ];
151 for ( int i = 0 ; i < dt.Rows.Count; i ++ )
152 {
153 total += Convert.ToDecimal(dt.Rows[i][ " subtotal " ]);
154 }
155 LblTotal.Text = total.ToString();
156 }
157 #region // update your buy products' count
158 protected void TxtBuyCount_TextChanged( object sender, EventArgs e)
159 {
160 DataTable dt = (DataTable)Session[ " shopCart " ];
161 // 找出当前文本框所在行的productID来
162 int cartProductID = Convert.ToInt32(TxtProductID.Text);
163 bool b = true ;
164 for ( int i = 0 ; i < Repeater1.Items.Count; i ++ )
165 {
166 if (Convert.ToInt32(((Literal)Repeater1.Items[i].FindControl( " LitProductID " )).Text) == cartProductID)
167 {
168 try
169 {
170 int nowBuyCount = Convert.ToInt32(((TextBox)Repeater1.Items[i].FindControl( " TxtBuyCount " )).Text);
171 dt.Rows[i][ " buyCount " ] = nowBuyCount.ToString();
172 dt.Rows[i][ " subtotal " ] = Convert.ToInt32(dt.Rows[i][ " unitPrice " ]) * nowBuyCount;
173 }
174 catch
175 {
176 Response.Write( " <script>alert('数量输入有误!');</script> " );
177 b = false ;
178 }
179 Repeater1.DataSource = dt.DefaultView;
180 Repeater1.DataBind();
181 GetTotal();
182 if (b)
183 {
184 Response.Write( " <script>alert('数量修改成功!');</script> " );
185 }
186 }
187 }
188 }
189 #endregion
190
191 public string productID
192 {
193 get
194 {
195 return Request.QueryString[ " productID " ];
196 }
197 }
198 }
199
1
using
System;
2 using System.Collections;
3 using System.Configuration;
4 using System.Data;
5 using System.Linq;
6 using System.Web;
7 using System.Web.Security;
8 using System.Web.UI;
9 using System.Web.UI.HtmlControls;
10 using System.Web.UI.WebControls;
11 using System.Web.UI.WebControls.WebParts;
12 using System.Xml.Linq;
13
14 public partial class shopCart1 : System.Web.UI.Page
15 {
16 string sql = null ;
17 DataSet ds = new DataSet();
18 protected void Page_Load( object sender, EventArgs e)
19 {
20 if ( ! IsPostBack)
21 {
22 if (productID != null )
23 {
24 GetShopCart();
25 }
26 else
27 {
28 if (cartProductID != null && cartProductID != "" )
29 {
30 // update product's buyCount
31 UpdateBuyCount();
32 }
33 else
34 {
35 Response.Redirect( " shopCart.aspx " );
36 }
37 }
38 }
39 }
40 #region // Create a shopCart and put the product into it
41 void GetShopCart()
42 {
43 if (Session[ " shopCart " ] == null || Session[ " shopCart " ] == "" )
44 {
45 // there has no cart
46 CreateCartTable();
47 }
48 PutInShopCart();
49 }
50 void PutInShopCart()
51 {
52 DataTable dt = new DataTable( " myTable " );
53 dt = (DataTable)Session[ " shopCart " ];
54 bool hasone = false ;
55 foreach (DataRow dr in dt.Rows)
56 {
57 if ( int .Parse(productID) == Convert.ToInt32(dr[ " productID " ]))
58 {
59 // select the same product,buyCount plus one
60 dr[ " buyCount " ] = Convert.ToInt32(dr[ " buyCount " ]) + 1 ;
61 dr[ " subtotal " ] = Convert.ToInt32(dr[ " buyCount " ]) * Convert.ToDecimal(dr[ " unitPrice " ]);
62 hasone = true ;
63 break ;
64 }
65 else
66 {
67 hasone = false ;
68 }
69 }
70 if (hasone == false )
71 {
72 // put the product into dt
73 sql = string .Format( " select * from productTable where productID={0} " , int .Parse(Request.QueryString[ " productID " ]));
74 DataTable productTable = DataBase.ExecuteDataSet(sql).Tables[ 0 ];
75 DataRow rows;
76 rows = new DataTable( " cartTable " ).NewRow();
77 int productID = Convert.ToInt32(productTable.Rows[ 0 ][ " productID " ]);
78 string productName = productTable.Rows[ 0 ][ " productID " ].ToString();
79 Decimal unitPrice = Convert.ToDecimal(productTable.Rows[ 0 ][ " unitPrice " ]);
80 int productTypeID = Convert.ToInt32(productTable.Rows[ 0 ][ " productTypeID " ]);
81 string productPic = productTable.Rows[ 0 ][ " productPic " ].ToString();
82 int buyCount = 1 ;
83 Decimal subtotal = buyCount * unitPrice;
84 dt.Rows.Add(productID, productName, unitPrice, productTypeID, productPic, buyCount,subtotal);
85 }
86 Session[ " shopCart " ] = dt;
87 Repeater1.DataSource = dt.DefaultView;
88 Repeater1.DataBind();
89 GetTotal();
90 }
91 void CreateCartTable()
92 {
93 DataTable dtCart = new DataTable( " cartTable " );
94 DataColumn dc ;
95 dc = new DataColumn( " productID " , System.Type.GetType( " System.Int32 " ));
96 dtCart.Columns.Add(dc);
97 dc = new DataColumn( " productName " , System.Type.GetType( " System.String " ));
98 dtCart.Columns.Add(dc);
99 dc = new DataColumn( " unitPrice " , System.Type.GetType( " System.Decimal " ));
100 dtCart.Columns.Add(dc);
101 dc = new DataColumn( " productTypeID " , System.Type.GetType( " System.Int32 " ));
102 dtCart.Columns.Add(dc);
103 dc = new DataColumn( " productPic " , System.Type.GetType( " System.String " ));
104 dtCart.Columns.Add(dc);
105 dc = new DataColumn( " buyCount " , System.Type.GetType( " System.Int32 " ));
106 dtCart.Columns.Add(dc);
107 dc = new DataColumn( " subtotal " , System.Type.GetType( " System.Decimal " ));
108 dtCart.Columns.Add(dc);
109 ds.Tables.Add(dtCart);
110
111 Session[ " shopCart " ] = dtCart;
112 Repeater1.DataSource = dtCart.DefaultView;
113 Repeater1.DataBind();
114 }
115 #endregion
116 protected void Repeater1_ItemDataBound( object sender, RepeaterItemEventArgs e)
117 {
118 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
119 {
120 ((ImageButton)e.Item.FindControl( " ImgDel " )).Attributes.Add( " onclick " , " return confirm('确定要删除吗?') " );
121 }
122 }
123 protected void Repeater1_ItemCommand( object source, RepeaterCommandEventArgs e)
124 {
125 int proID = Convert.ToInt32(((Literal)e.Item.FindControl( " LitProductID " )).Text.ToString());
126 DataTable dt = (DataTable)Session[ " shopCart " ];
127 for ( int i = 0 ; i < dt.Rows.Count;i ++ )
128 {
129 if (Convert.ToInt32(dt.Rows[i][ " productID " ]) == proID)
130 {
131 // delete this row
132 dt.Rows.RemoveAt(i);
133 }
134 }
135 Session[ " shopCart " ] = dt;
136 Repeater1.DataSource = dt.DefaultView;
137 Repeater1.DataBind();
138 GetTotal();
139 }
140 void GetTotal()
141 {
142 decimal total = 0 ;
143 DataTable dt = (DataTable)Session[ " shopCart " ];
144 for ( int i = 0 ; i < dt.Rows.Count; i ++ )
145 {
146 total += Convert.ToDecimal(dt.Rows[i][ " subtotal " ]);
147 }
148 LblTotal.Text = total.ToString();
149 }
150 #region // update your buy products' count
151 void UpdateBuyCount()
152 {
153 DataTable dt = (DataTable)Session[ " shopCart " ];
154 Repeater1.DataSource = dt.DefaultView;
155 Repeater1.DataBind();
156 GetTotal();
157 for ( int i = 0 ; i < Repeater1.Items.Count; i ++ )
158 {
159 if (Convert.ToInt32(((Literal)Repeater1.Items[i].FindControl( " LitProductID " )).Text) == int .Parse(cartProductID))
160 {
161 ((Label)Repeater1.Items[i].FindControl( " LblBuyCount " )).Visible = false ;
162 ((TextBox)Repeater1.Items[i].FindControl( " TxtBuyCount " )).Visible = true ;
163 ((HyperLink)Repeater1.Items[i].FindControl( " HLUpdateBuyCount " )).Visible = false ;
164 ((LinkButton)Repeater1.Items[i].FindControl( " LBtnUpdate " )).Visible = true ;
165 ((LinkButton)Repeater1.Items[i].FindControl( " LBtnCancel " )).Visible = true ;
166 }
167 }
168 }
169 protected void LBtnUpdate_Click( object sender, EventArgs e)
170 {
171 // get the Textbox's count
172 DataTable dt = (DataTable)Session[ " shopCart " ];
173 for ( int i = 0 ; i < Repeater1.Items.Count; i ++ )
174 {
175 if (Convert.ToInt32(((Literal)Repeater1.Items[i].FindControl( " LitProductID " )).Text) == int .Parse(cartProductID))
176 {
177 int nowBuyCount = Convert.ToInt32(((TextBox)Repeater1.Items[i].FindControl( " TxtBuyCount " )).Text);
178 dt.Rows[i][ " buyCount " ] = nowBuyCount.ToString();
179 dt.Rows[i][ " subtotal " ] = Convert.ToInt32(dt.Rows[i][ " unitPrice " ]) * nowBuyCount;
180 Repeater1.DataSource = dt.DefaultView;
181 Repeater1.DataBind();
182 GetTotal();
183 }
184 }
185 }
186 protected void LBtnCancel_Click( object sender, EventArgs e)
187 {
188 DataTable dt = (DataTable)Session[ " shopCart " ];
189 Repeater1.DataSource = dt.DefaultView;
190 Repeater1.DataBind();
191 GetTotal();
192 }
193 #endregion
194
195 public string productID
196 {
197 get
198 {
199 return Request.QueryString[ " productID " ];
200 }
201 }
202 public string cartProductID
203 {
204 get
205 {
206 return Request.QueryString[ " cartProductID " ];
207 }
208 }
209 }
210
2 using System.Collections;
3 using System.Configuration;
4 using System.Data;
5 using System.Linq;
6 using System.Web;
7 using System.Web.Security;
8 using System.Web.UI;
9 using System.Web.UI.HtmlControls;
10 using System.Web.UI.WebControls;
11 using System.Web.UI.WebControls.WebParts;
12 using System.Xml.Linq;
13
14 public partial class shopCart1 : System.Web.UI.Page
15 {
16 string sql = null ;
17 DataSet ds = new DataSet();
18 protected void Page_Load( object sender, EventArgs e)
19 {
20 if ( ! IsPostBack)
21 {
22 if (productID != null )
23 {
24 GetShopCart();
25 }
26 else
27 {
28 if (cartProductID != null && cartProductID != "" )
29 {
30 // update product's buyCount
31 UpdateBuyCount();
32 }
33 else
34 {
35 Response.Redirect( " shopCart.aspx " );
36 }
37 }
38 }
39 }
40 #region // Create a shopCart and put the product into it
41 void GetShopCart()
42 {
43 if (Session[ " shopCart " ] == null || Session[ " shopCart " ] == "" )
44 {
45 // there has no cart
46 CreateCartTable();
47 }
48 PutInShopCart();
49 }
50 void PutInShopCart()
51 {
52 DataTable dt = new DataTable( " myTable " );
53 dt = (DataTable)Session[ " shopCart " ];
54 bool hasone = false ;
55 foreach (DataRow dr in dt.Rows)
56 {
57 if ( int .Parse(productID) == Convert.ToInt32(dr[ " productID " ]))
58 {
59 // select the same product,buyCount plus one
60 dr[ " buyCount " ] = Convert.ToInt32(dr[ " buyCount " ]) + 1 ;
61 dr[ " subtotal " ] = Convert.ToInt32(dr[ " buyCount " ]) * Convert.ToDecimal(dr[ " unitPrice " ]);
62 hasone = true ;
63 break ;
64 }
65 else
66 {
67 hasone = false ;
68 }
69 }
70 if (hasone == false )
71 {
72 // put the product into dt
73 sql = string .Format( " select * from productTable where productID={0} " , int .Parse(Request.QueryString[ " productID " ]));
74 DataTable productTable = DataBase.ExecuteDataSet(sql).Tables[ 0 ];
75 DataRow rows;
76 rows = new DataTable( " cartTable " ).NewRow();
77 int productID = Convert.ToInt32(productTable.Rows[ 0 ][ " productID " ]);
78 string productName = productTable.Rows[ 0 ][ " productID " ].ToString();
79 Decimal unitPrice = Convert.ToDecimal(productTable.Rows[ 0 ][ " unitPrice " ]);
80 int productTypeID = Convert.ToInt32(productTable.Rows[ 0 ][ " productTypeID " ]);
81 string productPic = productTable.Rows[ 0 ][ " productPic " ].ToString();
82 int buyCount = 1 ;
83 Decimal subtotal = buyCount * unitPrice;
84 dt.Rows.Add(productID, productName, unitPrice, productTypeID, productPic, buyCount,subtotal);
85 }
86 Session[ " shopCart " ] = dt;
87 Repeater1.DataSource = dt.DefaultView;
88 Repeater1.DataBind();
89 GetTotal();
90 }
91 void CreateCartTable()
92 {
93 DataTable dtCart = new DataTable( " cartTable " );
94 DataColumn dc ;
95 dc = new DataColumn( " productID " , System.Type.GetType( " System.Int32 " ));
96 dtCart.Columns.Add(dc);
97 dc = new DataColumn( " productName " , System.Type.GetType( " System.String " ));
98 dtCart.Columns.Add(dc);
99 dc = new DataColumn( " unitPrice " , System.Type.GetType( " System.Decimal " ));
100 dtCart.Columns.Add(dc);
101 dc = new DataColumn( " productTypeID " , System.Type.GetType( " System.Int32 " ));
102 dtCart.Columns.Add(dc);
103 dc = new DataColumn( " productPic " , System.Type.GetType( " System.String " ));
104 dtCart.Columns.Add(dc);
105 dc = new DataColumn( " buyCount " , System.Type.GetType( " System.Int32 " ));
106 dtCart.Columns.Add(dc);
107 dc = new DataColumn( " subtotal " , System.Type.GetType( " System.Decimal " ));
108 dtCart.Columns.Add(dc);
109 ds.Tables.Add(dtCart);
110
111 Session[ " shopCart " ] = dtCart;
112 Repeater1.DataSource = dtCart.DefaultView;
113 Repeater1.DataBind();
114 }
115 #endregion
116 protected void Repeater1_ItemDataBound( object sender, RepeaterItemEventArgs e)
117 {
118 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
119 {
120 ((ImageButton)e.Item.FindControl( " ImgDel " )).Attributes.Add( " onclick " , " return confirm('确定要删除吗?') " );
121 }
122 }
123 protected void Repeater1_ItemCommand( object source, RepeaterCommandEventArgs e)
124 {
125 int proID = Convert.ToInt32(((Literal)e.Item.FindControl( " LitProductID " )).Text.ToString());
126 DataTable dt = (DataTable)Session[ " shopCart " ];
127 for ( int i = 0 ; i < dt.Rows.Count;i ++ )
128 {
129 if (Convert.ToInt32(dt.Rows[i][ " productID " ]) == proID)
130 {
131 // delete this row
132 dt.Rows.RemoveAt(i);
133 }
134 }
135 Session[ " shopCart " ] = dt;
136 Repeater1.DataSource = dt.DefaultView;
137 Repeater1.DataBind();
138 GetTotal();
139 }
140 void GetTotal()
141 {
142 decimal total = 0 ;
143 DataTable dt = (DataTable)Session[ " shopCart " ];
144 for ( int i = 0 ; i < dt.Rows.Count; i ++ )
145 {
146 total += Convert.ToDecimal(dt.Rows[i][ " subtotal " ]);
147 }
148 LblTotal.Text = total.ToString();
149 }
150 #region // update your buy products' count
151 void UpdateBuyCount()
152 {
153 DataTable dt = (DataTable)Session[ " shopCart " ];
154 Repeater1.DataSource = dt.DefaultView;
155 Repeater1.DataBind();
156 GetTotal();
157 for ( int i = 0 ; i < Repeater1.Items.Count; i ++ )
158 {
159 if (Convert.ToInt32(((Literal)Repeater1.Items[i].FindControl( " LitProductID " )).Text) == int .Parse(cartProductID))
160 {
161 ((Label)Repeater1.Items[i].FindControl( " LblBuyCount " )).Visible = false ;
162 ((TextBox)Repeater1.Items[i].FindControl( " TxtBuyCount " )).Visible = true ;
163 ((HyperLink)Repeater1.Items[i].FindControl( " HLUpdateBuyCount " )).Visible = false ;
164 ((LinkButton)Repeater1.Items[i].FindControl( " LBtnUpdate " )).Visible = true ;
165 ((LinkButton)Repeater1.Items[i].FindControl( " LBtnCancel " )).Visible = true ;
166 }
167 }
168 }
169 protected void LBtnUpdate_Click( object sender, EventArgs e)
170 {
171 // get the Textbox's count
172 DataTable dt = (DataTable)Session[ " shopCart " ];
173 for ( int i = 0 ; i < Repeater1.Items.Count; i ++ )
174 {
175 if (Convert.ToInt32(((Literal)Repeater1.Items[i].FindControl( " LitProductID " )).Text) == int .Parse(cartProductID))
176 {
177 int nowBuyCount = Convert.ToInt32(((TextBox)Repeater1.Items[i].FindControl( " TxtBuyCount " )).Text);
178 dt.Rows[i][ " buyCount " ] = nowBuyCount.ToString();
179 dt.Rows[i][ " subtotal " ] = Convert.ToInt32(dt.Rows[i][ " unitPrice " ]) * nowBuyCount;
180 Repeater1.DataSource = dt.DefaultView;
181 Repeater1.DataBind();
182 GetTotal();
183 }
184 }
185 }
186 protected void LBtnCancel_Click( object sender, EventArgs e)
187 {
188 DataTable dt = (DataTable)Session[ " shopCart " ];
189 Repeater1.DataSource = dt.DefaultView;
190 Repeater1.DataBind();
191 GetTotal();
192 }
193 #endregion
194
195 public string productID
196 {
197 get
198 {
199 return Request.QueryString[ " productID " ];
200 }
201 }
202 public string cartProductID
203 {
204 get
205 {
206 return Request.QueryString[ " cartProductID " ];
207 }
208 }
209 }
210