Shopping Cart
-
Author
dung-hoang -
Category
Documents
-
view
226 -
download
1
Embed Size (px)
Transcript of Shopping Cart
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 1
SHOPPING CART
Ni dung
1. Shopping Cart.
Cu hi
1. Hy tm lt li qui trnh to shopping cart.
2. Xem v gii thch code ca tng trang aspx.
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 2
1. Shopping Cart Bc 1: u tin m chng trnh Microsoft Visual Studio 2003/2005/2008/2010.
ln.
Bc 2: To mt project dng website File New Web Site.
.
Ri lm nh sau
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 3
Sau khi bm okie. Bn c mt website ban u
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 4
Bc 4: To folder cha cc hnh nh ca sn phm.
Click chut phi vo C:\ShoppingCartDemo\ New Folder. Ri t tn l
Images. Ri chp cc hnh nh sn phm vo th mc ny.
Click chut phi vo Images Add Existing Item. Ri chn ht hnh nh sn
phm trn vo.
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 5
Bc 5: Add database cho web.
Chp cc database vo th mc App_Data.
Click chut phi vo App_Data Add Existing Item. Ri chn database ca web
attach vo.
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 6
Bm Add. c kt qu
Bc 6: To folder cha code dng cs.
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 7
Click chut phi vo C:\ShoppingCartDemo\ New Folder. Ri t tn l
App_Code. Ri click chut phi vo folder App_Code. Chn Add New Item.
Ri chn nh sau:
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 8
Bc 7: Trong file ShoppingCart.cs sa li nh sau
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Collections.Generic;
namespace ShoppingCartExample
{
///
/// Summary description for ShoppingCart
///
[Serializable]
public class CartItem // to lp CartItem hng trong gi
{
private int _productID;
private string _productName;
private string _imageUrl;
private int _quantity;
private double _price;
private double _subTotal;
public CartItem()
{
}
public CartItem(int ProductID, string ProductName, string ImageUrl,
int Quantity, double Price)
{
_productID = ProductID;
_productName = ProductName;
_imageUrl = ImageUrl;
_quantity = Quantity;
_price = Price;
_subTotal = Quantity * Price;
}
public int ProductID
{
get
{
return _productID;
}
set
{
_productID = value;
}
}
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 9
public string ProductName
{
get { return _productName; }
set { _productName = value; }
}
public string ImageUrl
{
get { return _imageUrl; }
set { _imageUrl = value; }
}
public int Quantity
{
get { return _quantity; }
set { _quantity = value; }
}
public double Price
{
get { return _price; }
set { _price = value; }
}
public double SubTotal
{
get { return _quantity * _price; }
}
}
[Serializable]
public class Cart // to lp Cart gi hng
{
private DateTime _dateCreated;
private DateTime _lastUpdate;
private List _items;
public Cart()
{
if (this._items == null)
{
this._items = new List();
this._dateCreated = DateTime.Now;
}
}
public List Items
{
get { return _items;}
set { _items = value;}
}
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 10
public void Insert(int ProductID, double Price, int Quantity, string
ProductName, string ImageUrl)
{
int ItemIndex = ItemIndexOfID(ProductID);
if (ItemIndex == -1)
{
CartItem NewItem = new CartItem();
NewItem.ProductID = ProductID;
NewItem.Quantity = Quantity;
NewItem.Price = Price;
NewItem.ProductName = ProductName;
NewItem.ImageUrl = ImageUrl;
_items.Add(NewItem);
}
else
{
_items[ItemIndex].Quantity += 1;
}
_lastUpdate = DateTime.Now;
}
public void Update(int RowID, int ProductID, int Quantity, double
Price)
{
CartItem Item = _items[RowID];
Item.ProductID = ProductID;
Item.Quantity = Quantity;
Item.Price = Price;
_lastUpdate = DateTime.Now;
}
public void DeleteItem(int rowID)
{
_items.RemoveAt(rowID);
_lastUpdate = DateTime.Now;
}
private int ItemIndexOfID(int ProductID)
{
int index = 0;
foreach (CartItem item in _items)
{
if (item.ProductID == ProductID)
{
return index;
}
index += 1;
}
return -1;
}
public double Total
{
get
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 11
{
double t = 0;
if (_items == null)
{
return 0;
}
foreach (CartItem Item in _items)
{
t += Item.SubTotal;
}
return t;
}
}
}
}
Bc 8: To ra trang products page.
Bn rename trang Default.aspx thnh trang Products.aspx. V trong trang bn thay i
code nh sau
Products
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 12
View Shopping Cart
.
Ti dng code ConnectionString=""
Bn thay i chui kt ni n c s d liu ca tragn web. V d y l
ConnectionString="Data Source=JACKYHUNG-
PC\SQLEXPRESS;AttachDbFilename=C:\ShoppingCartDemo\App_Data\Database.mdf;Inte
grated Security=True;User Instance=True"
Bc 9: Chy v xem th kt qu.
Bc 10: To ra trang product details page.
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 13
Click chut phi vo C:\ShoppingCartDemo\ Add New Item.
Trong file ProductDetails.aspx. bn thay i code nh sau
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 14
Product Details
Return to Products Page
Ti dng code ConnectionString=""
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 15
Bn thay i chui kt ni n c s d liu ca tragn web. V d y l
ConnectionString="Data Source=JACKYHUNG-
PC\SQLEXPRESS;AttachDbFilename=C:\ShoppingCartDemo\App_Data\Database.mdf;Inte
grated Security=True;User Instance=True"
Bc 11: Vit code x l cho button Add To Cart ca trang ProductDetails.aspx
Chuyn sang phn design
Ri ko xung di. C nt button: Add to Cart.
Click chut i chut vo button ny. Thm on code sau vo
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 16
protected void Button1_Click(object sender, EventArgs e)
{
double Price = double.Parse(((Label)
DataList1.Controls[0].FindControl("PriceLabel")).Text);
string ProductName = ((Label)
DataList1.Controls[0].FindControl("NameLabel")).Text;
string ProductImageUrl = ((Label)
DataList1.Controls[0].FindControl("ImageUrlLabel")).Text;
int ProductID = int.Parse(Request.QueryString["ProductID"]);
if (Profile.SCart == null)
{
Profile.SCart = new ShoppingCartExample.Cart();
}
Profile.SCart.Insert
(ProductID, Price, 1, ProductName, ProductImageUrl);
Server.Transfer("Products.aspx");
}
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 17
Bc 12: M file Web.config
Thm on n v
Bc 13: Chy file Products.aspx ri click vo mt sn phm. Xem kt qu.
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 18
Bc 14: By gi thm mt web user control vo
Right click chut vo ShoppingCartDemo Add new Item.
Trong file source ca n thay i nh sau
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 19
CodeFile="CartControl.ascx.cs"
Inherits="CartControl" %>
Your Shopping Cart is empty, add items
Add Products
Bc 15: M file CartControl.ascx.cs
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 20
V thay i nh sau
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class CartControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (Profile.SCart == null)
{
Profile.SCart = new ShoppingCartExample.Cart();
}
if (!Page.IsPostBack)
{
ReBindGrid();
}
if (Profile.SCart.Items == null)
{
TotalLabel.Visible = false;
}
}
protected void grdCart_RowEditing
(object sender, GridViewEditEventArgs e)
{
grdCart.EditIndex = e.NewEditIndex;
ReBindGrid();
}
protected void grdCart_RowUpdating
(object sender, GridViewUpdateEventArgs e)
{
TextBox txtQuantity = (TextBox)
grdCart.Rows[e.RowIndex].Cells[2].Controls[0];
int Quantity = Convert.ToInt32(txtQuantity.Text);
if (Quantity == 0)
{
Profile.SCart.Items.RemoveAt(e.RowIndex);
}
else
{
Profile.SCart.Items[e.RowIndex].Quantity
= Quantity;
}
grdCart.EditIndex = -1;
ReBindGrid();
}
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 21
protected void grdCart_RowCancelingEdit
(object sender, GridViewCancelEditEventArgs e)
{
grdCart.EditIndex = -1;
ReBindGrid();
}
protected void grdCart_RowDeleting
(object sender, GridViewDeleteEventArgs e)
{
Profile.SCart.Items.RemoveAt(e.RowIndex);
ReBindGrid();
}
private void ReBindGrid()
{
grdCart.DataSource = Profile.SCart.Items;
DataBind();
TotalLabel.Text = string.Format("Total:{0,19:C}",
Profile.SCart.Total);
}
}
Bc 16: To ra trang UserCart page.
Click chut phi vo C:\ShoppingCartDemo\ Add New Item.
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 22
Trong file UserCart.aspx. bn thay i code nh sau
Untitled Page
Return to Products Page
-
Shopping Cart
Nguyn Kim Hng [email protected] - Khoa CNTT 23
Bc 17: Chy v thng thc kt qu.
.
Cu hi
3. Hy tm lt li qui trnh to shopping cart.
4. Xem v gii thch code ca tng trang aspx.
Chc cc bn may mn v hc tt mn ny
GOOD LUCK TO U
-------------HT----------