摘要:物件導向的購物車(動態新增移除輸入資料)
在偶然的情況,看到Allen大大在他的網站http://www.allenkuo.com/中介紹關於動態產生刪除輸入資料於表格中,發現到原來購物車可以用物件導向的方式設計,而且還蠻有趣的,小喵就決定試試看
不過原來的方式是在ASP.NET 1.1的環境,另外是使用C#的方式來撰寫,小喵對於C#只是勉強看得懂,所以小喵試著使用ASP.NET 2.0的環境搭配VB.NET來寫寫看,以下是撰寫的過程
畫面的安排:
首先安排畫面中兩個輸入選項,分別代表產品代號ProdNo與價格Price,另外加上一個Button處理放入購物車,另外再安排一個GridView來顯示購物車內容,相關內容如下:
購物車項目物件:
接著購物車的項目,項目中有兩個元素,分別是ProdNo與Price。撰寫CartItem物件,兩個屬性ProdNo以及Price
Public Class CartItem
Private mProdNo As String
Private mPrice As Integer
Public Property ProdNo() As String
Get
Return mProdNo
End Get
Set(ByVal value As String)
mProdNo = value
End Set
End Property
Public Property Price() As Integer
Get
Return mPrice
End Get
Set(ByVal value As Integer)
mPrice = value
End Set
End Property
End Class
Public Class Cart
Inherits CollectionBase
End Class
Private MyCart As Cart
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
MyCart = Session("Cart") '從Session中讀出購物車內容
If MyCart Is Nothing Then '如果購物車還是空的,產生購物車實體
MyCart = New Cart
End If
End Sub
Protected Sub btnAppend_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAppend.Click
Dim Itm As New CartItem '宣告實體化購物車的一個項目
'給予項目的內容
Itm.ProdNo = Me.txtProdNo.Text
Itm.Price = CType(Me.txtPrice.Text, Integer)
'轉換購物車物件為IList,使用IList的Add加入項目
CType(MyCart, IList).Add(Itm)
Session("Cart") = MyCart '將購物車放入Session
BindData() '呼叫自訂函數將購物車結合GridView
End Sub
購物車結合GridView的自訂函數
Public Sub BindData()
Me.GridView1.Visible = True
Me.GridView1.DataSource = MyCart
Me.GridView1.DataBind()
End Sub
到這邊就可以運作放入購物車的動作了
Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting
MyCart.RemoveAt(e.RowIndex) '移除項目
BindData() '結合GridView
Session("Cart") = MyCart '放入Session
End Sub
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
- 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
Microsoft MVP Visual Studio and Development Technologies (2005~2019/6) | topcat Blog:http://www.dotblogs.com.tw/topcat |