Hej, mam klasę ShoppCart, która zawiera elementy klasy cartItems

Więc mogę uruchomić funkcje takie jak

ShoppingCart.Instance.AddItem(5, 5, 16.0, "First Product", 15, 10)

ShoppingCart.Instance.Items.Count

ShoppingCart.Instance.RemoveItem(productId)

Gdzie wygląda usuwanie funkcji

' RemoveItem() - Removes an item from the shopping cart
Public Sub RemoveItem(ByVal productId As Integer)
    Dim removedItem = New CartItem(productId)

    For Each item As CartItem In Items
        If item.Equals(removedItem) Then
            Items.Remove(item)
            Return
        End If
    Next
End Sub

To usuwa jeden przedmiot, patrzę na funkcję, której mogę użyć do OPRÓŻNIANIA mojego koszyka, tj. przy wylogowaniu próbowałem Session.Abandon, ale potem loguję się ponownie, nadal pamięta produkty w moim koszyku.

0
StevieB 4 sierpień 2011, 18:30
1
Niemądre – ale czy sprawdziłeś, czy Twój koszyk ma metodę Clear?
 – 
George Johnston
4 sierpień 2011, 18:37

3 odpowiedzi

Najlepsza odpowiedź

Spróbuj zadzwonić ShoppingCart.Instance.Items.Clear();

I tylko losowe zgadywanie, jeśli używasz przykładowego kodu koszyka podanego tutaj: http:/ /www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=423 (ponieważ wydaje się to podobne) to możesz też dodać w klasie ShoppingCart nową metodę, która wyczyści wszystkie elementy tak:

public void RemoveAll() {  
Items.Clear();
}
0
Waqas 5 sierpień 2011, 14:04

Nie jest jasne, jakiego rodzaju lista jest używana w Twoim koszyku, ale możesz spróbować -

Items.RemoveAll()

EDYTUJ

Myślę, że metoda „RemoveAll()” wymaga predykatu jako argumentu, co oznaczałoby, że musisz zrobić coś takiego (co działałoby, ale jest dziwną rzeczą) -

Items.RemoveAll(x => 1==1)

Lub w vb

list.RemoveAll(Function(x) 1 = 1) 

Możesz spróbować tego -

Items.RemoveRange(0, Items.Count)
0
ipr101 4 sierpień 2011, 19:07
Brak dostępnej metody Clear, a ShoppingCart.Instance.Items.RemoveAll() szuka argumentu. Błąd to błąd 399 Argument nie został określony dla parametru „match” funkcji „Public Function RemoveAll(match As System.Predicate(Of T)) As Integer”.
 – 
StevieB
4 sierpień 2011, 18:51

Możesz po prostu to zrobić

ShoppingCart.Instance.Items.RemoveAll()

EDYTOWAĆ

Nie masz pewności, która kolekcja jest używana. Myślę, że innym prostym sposobem byłoby ponowne zainicjowanie kolekcji

ShoppingCart.Instance.Items = new Items();
0
shashi 5 sierpień 2011, 01:26
To daje błąd Błąd 399 Argument nie określony dla parametru „match” funkcji „Public Function RemoveAll(match As System.Predicate(Of T)) As Integer
 – 
StevieB
4 sierpień 2011, 18:51