物件導向的購物車(動態新增移除輸入資料)

摘要:物件導向的購物車(動態新增移除輸入資料)

  在偶然的情況,看到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

 

購物車物件:
接著設計購物車的物件,這邊繼承CollectionBase就可以了

 

Public Class Cart
    Inherits CollectionBase
End Class

 

宣告購物車變數
接著就在畫面的相關Class中宣告一個Class的全體變數MyCart型態為Cart

 

Private MyCart As Cart

 

PageLoad設定MyCart
接著在PageLoad的事件中,宣告給予購物車物件

 

    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

 

放入購物車
 
在按鈕Click的事件中,建立一個Item實體,將畫面兩個物件輸入的值放入Item,接著將購物車轉換物件為IList,透過Add函數將購物車Item加入購物車中,接著將購物車放到Session中紀錄,並且呼叫自訂函數將GridView結合購物車
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

到這邊就可以運作放入購物車的動作了

 

購物車刪除項目設定
 
接著就是設定購物車刪除物件的處理,設定GridView的Smart Tag,設定編輯資料行→加入Command Field中的刪除→確定
 
再來設定程式的部份,GridView的RowDeleting事件中,透過IList移除某項目的RemoveAt函式處理
 
    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
這樣就完成了所有的設定囉
 
在此特別感謝Allen大大給予的教學,讓小喵初次體會到物件導向有趣的一面,原來購物車可以這樣設計,真好玩
 
^_^

 


以下是簽名:


Microsoft MVP
Visual Studio and Development Technologies
(2005~2019/6) 
topcat
Blog:http://www.dotblogs.com.tw/topcat