topcat姍舞之間的極度凝聚

分享...是知識累積的開始....(Microsoft ASP/ASP.NET MVP)


My Links

Blog Stats

News

搬家公告:
未來小喵的文章會以點部落為主。
http://www.dotblogs.com.tw/topcat/
小鋪也會同步貼過來。不過在排版上能會比較沒有兼顧到。歡迎舊雨新知多多支持。 有與小喵交換網址或者訂閱的人,也建議連到那邊去。



目前線上人數:

隨筆分類

每月文章

影像集

其他部落格

工具網站

技術論壇

線上教學

語言學習

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

購物車物件:

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

宣告購物車變數

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

PageLoad設定MyCart

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

放入購物車

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

購物車結合GridView的自訂函數

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


購物車刪除項目設定

接著就是設定購物車刪除物件的處理,設定GridView的Smart Tag,設定編輯資料行→加入Command Field中的刪除→確定

再來設定程式的部份,GridView的RowDeleting事件中,透過IList移除某項目的RemoveAt函式處理

這樣就完成了所有的設定囉

在此特別感謝Allen大大給予的教學,讓小喵初次體會到物件導向有趣的一面,原來購物車可以這樣設計,真好玩

^_^

posted on Tuesday, June 06, 2006 7:28 PM

Feedback

# re: 物件導向的購物車(動態新增移除輸入資料) 7/21/2006 10:09 AM kk

請問此程式如何再VS2005上跑 可否詳述
我是初學者 謝謝


# re: 物件導向的購物車(動態新增移除輸入資料) 11/26/2006 4:47 PM kojimax

請問一下 欄位的順序怎麼調整呢? 現在我加了幾個欄位進去 但是看不出他的順序是從哪邊開始抓的說~謝謝~


# re: 物件導向的購物車(動態新增移除輸入資料) 12/14/2006 2:50 PM 硬盘数据恢复

不错~


# re: 物件導向的購物車(動態新增移除輸入資料) 12/14/2006 9:56 PM 拔拔

超好用的 ^. ^
本來看到Allen大大分享的C# 程式還在想怎麼辦 



# re: 物件導向的購物車(動態新增移除輸入資料) 1/10/2007 10:29 AM kety

不好意思~想請問一下
如果我要輸出值的話要怎麼寫呢??
我有看過ALLEN大大的程式了
不過改成VB語法還是不太對,
原:
foreach(CartItem item in mycart){
prodNo = item.ProdNo;
price = item.Price;
sql = "INSERT INTO xxx(...)VALUES(" + prodNo + " , " + price + ")<br>";
Response.Write(sql);
}

自己改的vb
For Each CarItem In Mycart
prodNo = item.ProdNo
price = item.Price
sql = "INSERT INTO xxx(...)VALUES('" + prodNo + "' , '" + price + "')<br>"
Response.Write(sql)
Next
可是第一行的caritem會出現曲曲與錯誤訊息
請問我要怎麼再才能執行呢??
謝謝大大的指教~


# re: 物件導向的購物車(動態新增移除輸入資料) 1/2/2008 6:09 PM Aven

經測試

Private MyCart As Cart

需寫成

Private MyCart As New Cart

不然會有產生虛值的錯誤訊息

另外請問一下

購物車每次只能加入一樣物品,再加入另一樣就會被蓋掉
是因為每次都寫入Session然後再讀取,所以每次都刷新嗎?
那這樣購物車的功能好像就有遺漏似的


# re: 物件導向的購物車(動態新增移除輸入資料) 1/3/2008 9:20 AM topcat

Aven:

宣告的時候不要New(產生新的執行個體)
否則每次進來都產生新的...資料如何記錄呢??

所以還是原來的才對
Private MyCart As Cart

另外您的問題
您可能沒有注意到Page_Load事件中的處理
PageLoad事件中
會先把Session中的東西指定給MyCart
所以如果一開始沒有東西
就會在這邊New(產生新的執行個體)
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

--
其他的部分,當資料有異動後,都會把物件存放到Session中
讓下次Page_Load的時候,可以把物件從Session中取回



# re: 物件導向的購物車(動態新增移除輸入資料) 4/3/2008 12:27 AM Allen Kuo

沒想到在這裡反而討論比較多, 呵
topcat, 其實到.NET 2.0可以用泛型,就不必繼承CollectionBase了, 我改寫ASP.NET 2.0後,就沒再用過CollectionBase了呢


Post Feedback

Title:
Name:
Url:
驗證碼  
Comments: