Pro nákupní košík se dá použít buď uživatelský profil (v případě, že je při nakupování uživatel vždy přihlášen), anebo session. Dalo by se to uložit i do cookies, ale ty mají omezenou kapacitu na jednotky kB, což by na větší nákup nemuselo stačit. Držet to v databázi je asi blbost, musel byste promazávat staré záznamy ručně, u session se o to postará ASP.NET runtime, což je jednodušší. Jak konkrétně to udělat? Nejlepším řešením je udělat si třídu Kosik, při přidání položky do košíku se podívat, jestli už košík v session není, pokud ano, tak do něj jen něco přidat. Pokud ne, vytvořit ho tam a přidat do něj prdukt.
'vytvoření košíku
Dim k As New Kosik()
Session("Kosik") = k
'získání košíku ze Session
Dim k As Kosik = DirectCast(Session("Kosik"), Kosik)
If k Is Nothing Then
'košík není v session
End If
Třída Kosik by měla obsahovat vlastnosti, které budete potřebovat, tzn. určitě Polozky typu List(Of Polozka), což je kolekce nakoupených položek. Polozka je struktura nebo třída, která má třeba vlastnosti Nazev, Cena, Id, Mnozstvi atd. Aby se to dalo uložit do session, musíte třídě Kosik a asi i struktuře (nebo třídě) Polozka přidat atribut Serializable, doufám, že si to z hlavy pamatuji správně.
|