2010-11-25 38 views
0

Je crée un panier dans ASP.NET en utilisant des variables de session pour passer les données d'une page shopping.aspx à basket.aspx, actuellement j'ai les pages qui passent le primaire clé du produit avec un gridview sur le panier.aspx utilisé pour afficher les données de la base de données.Plusieurs entrées via une variable de session dans ASP.NET

Cependant, cela ne fonctionne que pour un élément à la fois, comment puis-je étendu la variable de session de sorte que plusieurs produits peuvent être ajoutés, ainsi que des quantités, etc?

Répondre

2

Vous pouvez utiliser votre propre objet, par exemple. Panier qui peut avoir une ou plusieurs propriétés.

L'objet doit être commercialisable en tant que Serializable.

Par exemple:

[Serializable] 
public class Basket 
{ 
    public List<BasketItem> Items {get;set;} 
    public int UserId {get;set;} 
} 

[Serializable] 
public class BasketItem 
{ 
    //... 
} 
2

Vous pouvez placer (presque) n'importe quel objet dans la session, pas seulement des chaînes. Donc, vous pouvez utiliser un List<string> pour une liste de clés, ou même un List<Product>.

EDIT
Ainsi, dans la première page vous obtiendrez

var bookids = new List<string>(); 
// collect all book IDs into the 'bookids' list 
Session["bookIDs"] = bookids; 

et dans la deuxième page:

var bookids = Session["bookIDs"] as List<string>; 
// use all IDs