ArrayList-Sitzung
Ich habe eine array-Liste wird gebildet, um jedes genre der Musik, zum Beispiel werde ich zeigen, country-Musik:
public class CountryItemList
{
ArrayList CountryItems = new ArrayList();
protected void CountryBuy1_Click(object sender, ImageClickEventArgs e)
{
CountryItems.Add("Johnny Cash - I Walk The Line - $9");
}
protected void CountryBuy2_Click(object sender, ImageClickEventArgs e)
{
CountryItems.Add("Carrie Underwood - Blown Away - $9");
}
protected void CountryBuy3_Click(object sender, ImageClickEventArgs e)
{
CountryItems.Add("Keith Urban - The Story So Far - $9");
}
protected void CountryBuy5_Click(object sender, ImageClickEventArgs e)
{
CountryItems.Add("Taylor Swift - Red - $11");
}
protected void CountryBuy6_Click(object sender, ImageClickEventArgs e)
{
CountryItems.Add("Willie Nelson - Legend - $9");
}
}
}
für jedes buy-button, der geklickt wird, wird das ausgewählte album wird Hinzugefügt, um die array-Liste, aus der dann auf ich möchte den array-Liste in einer Sitzung, und führen Sie es über ein Listenfeld auf das "Warenkorb-Seite". Ich habe Probleme bei der Einnahme der array-Liste und machen es in einer Sitzung auf die nächste Seite
- Irgendeinem Grund bist du mit ArrayList anstatt eine generische Sammlungen, für den Anfang?
- Sie sollten wahrscheinlich machen
CountryItems
eineList<string>
statt einerArrayList
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bist du nur gehen zu müssen, Session [], um es zu tragen über.
Ich würde eine Liste verwenden, anstatt eine ArrayList.
Probieren Sie etwas wie:
Diese Weise auf den Sie verweisen, CountryListItems direkt aus der Sitzung. Wenn es in der Mappe vorhanden, wird der Wert von session. Falls nicht, erhalten Sie eine leere Liste, können Sie Werte hinzufügen. Dies sollte dann auch verpflichten, keine updates zu der Sitzung, wenn Sie die Elemente.
Betrachten Sie auch mit CommandEventArgs, die Ihnen erlaubt, zu erstellen, ein Klick-Ereignis genannt, die von mehreren Orten, dann werden Sie in der Lage zu senden, die einzelnen Kommentar-event args in e und bekommen die Werte direkt aus dem markup.
Habe ich immer weniger als begeistert für die Verwendung von Session für Dinge wie diese. Ich finde es ist nicht so zuverlässig wie mit Hilfe einer Datenbank-Tabelle, insbesondere für so etwas wie ein Warenkorb.
Wenn Sie jemals benötigt, um starten Sie den Anwendungspool, werden alle aktuellen Benutzer würde verlieren Ihre Auswahl, wenn Sie es speichern in der Session. Man sollte auch nicht davon ausgehen, dass wenn man etwas in Sitzung ist jederzeit sofort verfügbar.
Sollten Sie sich Gedanken über die Lagerung dieser Sachen in eine Datenbank-Tabelle. Sie konnte sssign jedem Benutzer eine GUID, wenn Sie etwas hinzufügen, um die Wagen für die erste Zeit und Einsatz, dass neben einer Produkt-ID für jeden song. Werfen, dass die GUID in einem cookie, damit, wenn Sie wieder kommen zu einem späteren Zeitpunkt, Ihren Warenkorb noch voll. Sie können auch Ihre SessionID wenn Sie keine cookies nutzen möchten oder Pflege, wenn Ihr Warenkorb ist leer, wenn Sie das Fenster schließen.
Wenn Sie weiterhin verwenden wollen-Sitzung, so etwas wie dies funktionieren würde
Für das hinzufügen in die Liste, man könnte wirklich bereinigen Sie Ihren code ein wenig, indem Sie nur einen Event-Handler. So etwas
Und so weiter für die anderen songs.
Ich glaube nicht, dass diese erhalten Sie einen besten shopping-card award, aber es wird den job zu erledigen.
Es im Grunde gespeichert die ausgewählten Elemente in die Sitzung, so dass Sie abgerufen zurück nächste Seite.
Hinweis: ArrayList ist veraltet, also bitte verwenden Sie die Generische Liste.
Versuchen, diese
Seite 1:
Seite 2:
Quelle: http://forums.asp.net/t/1425975.aspx?C+How+to+place+an+arraylist+inside+a+Session+Variable+and+Iterate+through+it