Giống như khi vào siêu thị,
các website bán hàng cũng có giỏ hàng là nơi chứa những mặt hàng
mà người dùng dự định sẽ đặt hàng. Khi lựa chọn hàng hóa vào trong
giỏ, người dùng vẫn có thể loại bỏ những mặt hàng của mình ra
khỏi giỏ hàng. Lúc xác thực những
mặt hàng cần mua thì số lượng mặt hàng. Sau đây tôi xin giới thiệu
cách tạo ra một giỏ hàng đơn giản theo Murach’s Asp.net 4.0.
Trong cơ sở dữ liệu có bảng
Product(ProductId,Name, ShortDiscription, LongDiscription, ImageFile…) đã có dữ liệu, trong đó:
ProductId là mã sản phẩm , Name: tên sản phẩm, ShortDiscription là mô
tả ngắn gọn về sản phẩm, LongDiscription là mô tả đầy đủ về sản
phẩm, ImageFile là đường dẫn trỏ đến hình ảnh sản phẩm.
Cấu trúc của giỏ hàng được
thiết kế sao cho từ trang Order, khi chọn mặt hàng trong DropDownList :
ddlProduct và số lượng được nhập vào ô textbox txtQuatity và nhấn
submit thì sẽ chuyển đến trang Cart và hiển thị giỏ hàng ở đây.
Giao diện chọn mặt hàng cho giỏ hàng |
Sau
khi nhấn vào Add to Cart hoặc Go to Cart thì sẽ chuyển đến giỏ hàng :
Giỏ hàng |
Như vậy cần phải thiết kế các lớp sau:
Các lớp trong giỏ hàng |
Nội dung của lớp Product như sau:
public class
Product
{
/// <summary>
/// Mã sản phẩm
/// </summary>
private string productid;
public string ProductID { get
{ return productid; } set { value= productid; } }
/// <summary>
/// Tên sản phẩm
/// </summary>
private string name;
public string Name { get {
return name; } set
{ name = value; ; } }
/// <summary>
/// Mô tả ngắn gọn
/// </summary>
string
sd;
public string ShortDescription { get
{ return sd; } set
{ sd = value; } }
/// <summary>
/// Mô tả đầy đủ
/// </summary>
string
ld;
public string LongDescription { get
{ return ld; } set
{ ld = value ; } }
/// <summary>
/// Đơn giá
/// </summary>
decimal
up;
public decimal UnitPrice { get
{ return up; } set
{ up = value ;} }
/// <summary>
/// Hình ảnh của sản phẩm
/// </summary>
string
imf;
public string ImageFile { get
{ return imf; } set
{ imf = value; } }
}
|
Nội dung của lớp CartItem như sau:
public class
CartItem
{
public
CartItem() {}
/// <summary>
/// Khởi dựng có tham số
/// </summary>
/// <param
name="product">Sản phẩm</param>
/// <param
name="quantity">Số lượng</param>
public
CartItem(Product product, int quantity)
{
this.Product
= product;
this.Quantity
= quantity;
}
public Product Product { get;
set; }
public int Quantity { get;
set; }
/// <summary>
/// Phương thức thêm số lượng
/// </summary>
/// <param
name="quantity">Số lượng thêm
vào</param>
public void AddQuantity(int
quantity)
{
this.Quantity
+= quantity;
}
public string Display()
{
string
displayString =
Product.Name + " (" + Quantity.ToString()
+ "
at " + Product.UnitPrice.ToString("c")
+ " each)";
return
displayString;
}
}
|
Nội dung của lớp CartItemList như sau:
using System;
using System.Collections.Generic;
using System.Web;
public class
CartItemList
{
/// <summary>
/// Danh mục sản phẩm
/// </summary>
private List<CartItem>
cartItems;
public
CartItemList()
{
cartItems = new
List<CartItem>();
}
/// <summary>
/// Số lượng mặt hàng
/// </summary>
public int Count {
get {
return cartItems.Count; }
}
/// <summary>
/// Khai báo kiểu mảng
/// </summary>
/// <param
name="index">chỉ số mảng</param>
/// <returns>phần tử có vị trí index</returns>
public CartItem this[int index]
{
get
{ return cartItems[index]; }
set {
cartItems[index] = value; }
}
/// <summary>
/// Lấy sản phẩm từ danh mục sản phẩm
/// </summary>
/// <param
name="id">Sản phẩm cần lấy</param>
/// <returns>Trả lại sản phẩm có chỉ số là id</returns>
public CartItem this[string id]
{
get {
foreach
(CartItem c in
cartItems)
if
(c.Product.ProductID == id) return c;
return
null;
}
}
public static CartItemList
GetCart()
{
CartItemList
cart = (CartItemList) HttpContext.Current.Session["Cart"];
if
(cart == null)
HttpContext.Current.Session["Cart"] = new
CartItemList();
return
(CartItemList) HttpContext.Current.Session["Cart"];
}
public void AddItem(Product
product, int quantity)
{
CartItem
c = new CartItem(product,
quantity);
cartItems.Add(c);
}
public void RemoveAt(int
index)
{
cartItems.RemoveAt(index);
}
public void Clear()
{
cartItems.Clear();
}
}
|
Theo: Murach ASP.NET 4 Web Programming With Csharp 2010
Chúc các bạn thành công./.
Còn tiếp.
No comments :
Post a Comment