Tạo Giỏ Hàng-ASP.NET (VB.NET + Access Database)
Tue Apr 02, 2013 7:48 pm
Trong web ASP.NET, giỏ hàng đóng vai trò chủ yếu và quan trọng đối với các website bán hàng trực tuyến. Hôm nay INTECH xin hướng dẫn các bạn tạo một trang giỏ hàng đơn giản, hi vọng sẽ giúp được các bạn thực hiện một website như ý mình mong muốn.
Các bạn tạo 1 file CSDL.mdb và lưu tại App_Data gồm các trường: Masp, tensp, dongia, hinh
và chuẩn bị một thư mục hình ảnh các sản phẩm:
Các bạn tạo một Website mới đặt tên cho nó là Giỏ Hàng (Hoặc Shopping-cart tuỳ theo ý thích).
Tại trang Default.aspx, các bạn thiết kế giao diện như sau:
Các bạn Imports 2 thư viện vào phần trên cùng của trang Default.aspx.vb:
Các bạn khởi tạo 1 tbgiohang bằng cách thêm vào bên dưới:
đoạn code:
Sau khi đã đặt tên cho Datalist là "luoihang", chúng ta xử lý sự kiện khi nhấn nút ibtmuahang bằng code sau:
* Đoạn trên add masp và số lượng sản phẩm vào 1 tbgiohang, nếu đã tồn tại sản phẩm thì tăng số lượng lên sau mỗi lần click mua sản phẩm đó.
Tại Page Load, chúng ta kiểm tra session("GioHang"):
nếu session("GioHang") khác NULL chúng ta sẽ gán Session("GioHang") = tbgiohang.
Lưu Ý:
Khi tạo nút ibtmuahang, tại Command Name các bạn gõ tên của nó vào: ibtmuahang
Cuối cùng, biến Session("GioHang") các bạn khai báo trong file Global.asax:
Kết quả chúng ta được như sau:
Chúc các bạn thành cồng, file đính kèm ở bên dưới:
Download Demo
Các bạn tạo 1 file CSDL.mdb và lưu tại App_Data gồm các trường: Masp, tensp, dongia, hinh
và chuẩn bị một thư mục hình ảnh các sản phẩm:
Các bạn tạo một Website mới đặt tên cho nó là Giỏ Hàng (Hoặc Shopping-cart tuỳ theo ý thích).
Tại trang Default.aspx, các bạn thiết kế giao diện như sau:
Các bạn Imports 2 thư viện vào phần trên cùng của trang Default.aspx.vb:
- Code:
Imports System.Data
Imports System.DBNull
Các bạn khởi tạo 1 tbgiohang bằng cách thêm vào bên dưới:
- Code:
Partial Class _Default
Inherits System.Web.UI.Page
đoạn code:
- Code:
Dim tbgiohang As New DataTable
Sau khi đã đặt tên cho Datalist là "luoihang", chúng ta xử lý sự kiện khi nhấn nút ibtmuahang bằng code sau:
- Code:
Protected Sub luoihang_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles luoihang.ItemCommand
If e.CommandName = "ibtmuahang" Then
tbgiohang = CType(Session("GioHang"), DataTable)
Dim intidsp, tong, flgia As Integer
intidsp = Val(luoihang.DataKeys(e.Item.ItemIndex).ToString())
Dim strtensp As String
Dim intsoluong As Integer = 1
Dim l1 As Label
l1 = e.Item.FindControl("lbgia")
flgia = Val(l1.Text)
Dim lb As HyperLink
lb = e.Item.FindControl("hpten")
strtensp = lb.Text
For Each row As DataRow In tbgiohang.Rows
If (Val(row("masp")) = intidsp) Then
row("soluong") = Val(row("soluong")) + 1
row("tongtien") = Val(row("soluong")) * Val(row("gia"))
GoTo GioHang
End If
Next row
tong = intsoluong * flgia
tbgiohang.Rows.Add(intidsp, strtensp, flgia, intsoluong, tong)
GioHang:
Session("GioHang") = tbgiohang
Response.Write("<script>alert('Thêm vào giỏ hàng thành công')</script>")
GridView1.DataSource = tbgiohang
GridView1.DataBind()
End If
End Sub
* Đoạn trên add masp và số lượng sản phẩm vào 1 tbgiohang, nếu đã tồn tại sản phẩm thì tăng số lượng lên sau mỗi lần click mua sản phẩm đó.
Tại Page Load, chúng ta kiểm tra session("GioHang"):
- Code:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
If IsDBNull(Session("GioHang")) = True Then
tbgiohang = Session("GioHang")
Else
tbgiohang.Rows.Clear()
tbgiohang.Columns.Clear()
tbgiohang.Columns.Add("masp", GetType(Integer))
tbgiohang.Columns.Add("tensp", GetType(String))
tbgiohang.Columns.Add("Gia", GetType(Integer))
tbgiohang.Columns.Add("soluong", GetType(Integer))
tbgiohang.Columns.Add("tongtien", GetType(Double))
Session("GioHang") = tbgiohang
End If
End If
End Sub
nếu session("GioHang") khác NULL chúng ta sẽ gán Session("GioHang") = tbgiohang.
Lưu Ý:
Khi tạo nút ibtmuahang, tại Command Name các bạn gõ tên của nó vào: ibtmuahang
Cuối cùng, biến Session("GioHang") các bạn khai báo trong file Global.asax:
- Code:
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' Code that runs when a new session is started
Session.Timeout = 20
Session("GioHang") = 0
End Sub
Kết quả chúng ta được như sau:
Chúc các bạn thành cồng, file đính kèm ở bên dưới:
Download Demo
Permissions in this forum:
Bạn không có quyền trả lời bài viết