2013-05-14 44 views
1
List<ShoppingCartView> removeitem = (List<ShoppingCartView>)Session["ShoppingView"]; 

我想刪除單擊該特定產品的行。例如,如果我點擊產品xxx並希望從會話[「ShoppingView」]中刪除產品xxx,則列表的其餘部分應保持不變。從會話列表中刪除特定項目

+0

你如何設置'會話[ 「ShoppingView」 ]'?什麼是'ShoppingCartView'? – Damith 2013-05-14 08:47:59

回答

2

你必須編輯狀態相應

var list = (List<ShoppingCartView>)Session["ShoppingView"]; 
Session["ShoppingView"] = list.Where(x => x.ProductName!= "pname").ToList(); 
+0

謝謝,我得到了我的輸出 – user2380844 2013-05-16 06:46:01

+0

我確實接受了您的解決方案 – user2380844 2013-05-16 07:08:44

1

您可以使用Remove

Session["ShoppingView"] = (List<ShoppingCartView>)Session["ShoppingView"].Remove((List<ShoppingCartView>)Session["ShoppingView"].Where(x => x.id== sessionItemToRemove).ToList()); 
+0

雅我試過,我甚至通過了這樣的id int sessionItemToRemove = Int32.Parse(((Label)e.Item.FindControl(「proid」))。但在分配id以從session.i中刪除時出現錯誤wnt知道如何通過產品xx的id從會話中刪除xx – user2380844 2013-05-14 08:46:33

+0

在執行此操作後刷新屏幕後會發生什麼?那麼變化是否會發生?我會考慮在你的代碼中添加一個foreach循環,遍歷所有的值,以確保你所比較的值是你期望的值! – Dave 2013-05-14 08:47:36

+0

int sessionItemToRemove = Int32.Parse(((Label)e.Item.FindControl(「proid」))。Text); var cart = Session [「ShoppingView」]作爲List ; cart.Remove(sessionItemToRemove);移除在運行時顯示錯誤 – user2380844 2013-05-14 08:52:02

0

你可以像下面這樣做

List<string> foo = Session["ShoppingView"]; 
foo.Remove("xxx"); 
Session["ShoppingView"] = foo;