Shopping Cart

of 23 /23
Shopping Cart Nguyễn Kim Hưng [email protected] - Khoa CNTT 1 SHOPPING CART Nội dung 1. Shopping Cart. Câu hỏi 1. Hãy tóm lượt li qui trình to shopping cart. 2. Xem và gii thích code ca tng trang aspx.

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----------