我如何将购买的商品添加到购物车中的 gridview?
how do i get purchased items to a gridview in a shopping cart?
嘿,我最近创建了一个购物车,但我在将购买的商品分类到网格视图中时遇到问题。这是我的购物车 class:
Public Class Cart
Private dt As DataTable = New DataTable()
Public Sub New()
dt.Columns.Add(New DataColumn("Product ID"))
dt.Columns.Add(New DataColumn("Quantity"))
dt.PrimaryKey = New DataColumn() {dt.Columns("Product ID")}
End Sub
Public Sub AddToCart(ByVal prd_id As Integer, ByVal quantity As Integer)
Dim dr As DataRow = dt.NewRow()
dr("Product ID") = prd_id
dr("Quantity") = quantity
dt.Rows.Add(dr)
End Sub
Public Sub RemoveFromCart(ByVal prd_id As Integer)
Dim dr As DataRow = dt.Rows.Find(prd_id)
dt.Rows.Remove(dr)
End Sub
Public Function GetCart() As DataTable
Return dt
End Function
End Class
这是按钮功能:
If Session("Customer_ID") <> Nothing Then
Dim userCart As Cart = CType(Session("shoppingCart"), Cart)
Dim qty As Integer = txtqty.text
Dim pid As Integer = lblid.text
userCart.AddToCart(pID, qty)
Else
Response.Redirect("User_Login.aspx")
End If
当我尝试 运行 代码时,我收到一条错误消息,提示 ("Object reference not set to an instance of an object.") 请帮助我 运行 完全没有想法。我该如何解决这个问题?
"shoppingCart" 的会话密钥的值为 Nothing,因此当您尝试从 userCart 实例调用 AddToCart 函数时,您会收到此错误。您必须确保 Session("shoppingCart") 不是空的。如果是,您应该创建它或执行您希望在该场景中执行的逻辑。请注意,Session 会在客户端处于非活动状态一段时间后超时(可在 Web.config 文件中配置),因此这是一个非常真实的场景。
Dim userCart As Cart = Nothing
If Not Session("shoppingCart") Is Nothing Then
userCart = CType(Session("shoppingCart"), Cart)
Else
userCart = New Cart
End If
userCart.AddToCart(pID, qty)
别忘了将您的购物车保存到会话中!
Session("shoppingCart") = userCart
嘿,我最近创建了一个购物车,但我在将购买的商品分类到网格视图中时遇到问题。这是我的购物车 class:
Public Class Cart
Private dt As DataTable = New DataTable()
Public Sub New()
dt.Columns.Add(New DataColumn("Product ID"))
dt.Columns.Add(New DataColumn("Quantity"))
dt.PrimaryKey = New DataColumn() {dt.Columns("Product ID")}
End Sub
Public Sub AddToCart(ByVal prd_id As Integer, ByVal quantity As Integer)
Dim dr As DataRow = dt.NewRow()
dr("Product ID") = prd_id
dr("Quantity") = quantity
dt.Rows.Add(dr)
End Sub
Public Sub RemoveFromCart(ByVal prd_id As Integer)
Dim dr As DataRow = dt.Rows.Find(prd_id)
dt.Rows.Remove(dr)
End Sub
Public Function GetCart() As DataTable
Return dt
End Function
End Class
这是按钮功能:
If Session("Customer_ID") <> Nothing Then
Dim userCart As Cart = CType(Session("shoppingCart"), Cart)
Dim qty As Integer = txtqty.text
Dim pid As Integer = lblid.text
userCart.AddToCart(pID, qty)
Else
Response.Redirect("User_Login.aspx")
End If
当我尝试 运行 代码时,我收到一条错误消息,提示 ("Object reference not set to an instance of an object.") 请帮助我 运行 完全没有想法。我该如何解决这个问题?
"shoppingCart" 的会话密钥的值为 Nothing,因此当您尝试从 userCart 实例调用 AddToCart 函数时,您会收到此错误。您必须确保 Session("shoppingCart") 不是空的。如果是,您应该创建它或执行您希望在该场景中执行的逻辑。请注意,Session 会在客户端处于非活动状态一段时间后超时(可在 Web.config 文件中配置),因此这是一个非常真实的场景。
Dim userCart As Cart = Nothing
If Not Session("shoppingCart") Is Nothing Then
userCart = CType(Session("shoppingCart"), Cart)
Else
userCart = New Cart
End If
userCart.AddToCart(pID, qty)
别忘了将您的购物车保存到会话中!
Session("shoppingCart") = userCart