Avatar billede ircnoob Nybegynder
07. november 2006 - 13:09 Der er 12 kommentarer

Hjælp til sessions

Jeg skal have oprettet en række film hvor man vælger et par film og smider i en indkøbskurvn.. Men skal i et array der gemmes som en session ikke for at kunne tilgå på en side længere henne ikke..? men bliver nød til at anbringe det så ikke kører ved postback, men så virker den funktion, der smider filmenes navn og pris i en table ikke.. ? kaos, hvad gør jeg..



protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {       
            Film film1 = new Film("Batman", 100, "En super fed film, med hans kæreste robbin i en mere fremtrædende rolle denne gang");
            Film film2 = new Film("Lesbian", 200, "Disse to sygeplejerske-studerende hygger sig");
            Film film3 = new Film("Dracula", 40, "Sug løs af blodet");
            Film film4 = new Film("Hulk", 2000, "Film historiens absolut bedste film til dato, her kan kingkong godt gå hjem og græde ved mors skulder");
           
            ArrayList cart = (ArrayList)Session["ShoppingCart"];

            cart.Add(film1);
            cart.Add(film2);
            cart.Add(film3);
            cart.Add(film4);
        }

        if (Session["ShoppingCart"] == null)
            Session["ShoppingCart"] = new ArrayList();

   
        filmTable.Controls.Clear();
        filmTable.BorderStyle = BorderStyle.Dotted;
        filmTable.Font.Bold = true;
        filmTable.BorderWidth = Unit.Pixel(1);
        filmTable.GridLines = GridLines.Both;
        filmTable.CellPadding = 5;

        int rows = cart.Count;
        int cols = 3;

        TableCell cellNew = null;       
       
        for (int row = 0; row < rows; row++)
        {
            TableRow rowNew = new TableRow();

            filmTable.Controls.Add(rowNew);
           

                for (int col = 0; col < cols; col++)
                {
                    cellNew = new TableCell();

                    if (col == 0) {
                        Film f = (Film)cart[row];
                        cellNew.Text += f.getTitle();
                    }

                    else if (col == 2){
                        Film f = (Film)cart[row];
                        string filmnavn = f.getTitle();
                        double filmpris = f.getPrice();
                        string filminfo = f.getInfo();

                        LinkButton buttonChoose = new LinkButton();
                        //Button buttonChoose = new Button();
                        buttonChoose.Text = "Tilføj til kurv";
                       
                        buttonChoose.CommandName = filmpris.ToString();
                        buttonChoose.CommandArgument = filmnavn;                       
                        buttonChoose.Command += new CommandEventHandler(CommandEventMethod);                     
                       
                       
                        cellNew.Controls.Add(buttonChoose);
                    }
                    else {
                        Film f = (Film)cart[row];
                        cellNew.Text += f.getPrice() + " kr";
                        cellNew.HorizontalAlign = HorizontalAlign.Right;
                    }                 
                   
                    Label lblNew = new Label();
                    lblNew.Text = "";
                   
                    //cellNew.Controls.Add(lblNew);
                   
                    rowNew.Controls.Add(cellNew);
                }
            }   
    }
Avatar billede websam Nybegynder
07. november 2006 - 13:49 #1
Jeg ville nok vælge at lave varekurv i en midlertidig tabel istedet for at bruge sessions, men blot min vurdering.

PS. Hvad er det for en film : "Disse to sygeplejerske-studerende hygger sig"

/Websam
Avatar billede jokkejensen Novice
07. november 2006 - 14:38 #2
ellers brug..

List<Film> basket = new List<Film>();

basket.Add(new film());

Du læser dem så bare emd

foreach(Film f in basket)
{
Response.Write(f.Name);
}
Avatar billede jokkejensen Novice
07. november 2006 - 14:39 #3
du smider bare basket i session som du plejer

Session["basket"] = basket;
Avatar billede ircnoob Nybegynder
07. november 2006 - 14:49 #4
jokkejensen synes jo også at det er det jeg gør nu ?

Men bliver jo nød itl at være i et check på om det er postback, og når den er det, så virker table-funktionen ikke, så kan den ikke card array'et
Avatar billede ircnoob Nybegynder
07. november 2006 - 15:00 #5
Altså har en masterpage der har if (Session["ShoppingCart"] == null)          Session["ShoppingCart"] = new ArrayList();  i load .. så har jeg fx en filmside og en musik side der skal kunen tilføje de valgte film eller musik titler til en indkøbvsvogn ..
Avatar billede ircnoob Nybegynder
07. november 2006 - 15:07 #6
næ det gjrode jeg så ikke helt.. Men virker ikke når jeg har jeg defineret sesion i masterpagens load..  er helt forvirret nu :)
Avatar billede jokkejensen Novice
07. november 2006 - 15:16 #7
ArrayList cart = (ArrayList)Session["ShoppingCart"];

            cart.Add(film1);
            cart.Add(film2);
            cart.Add(film3);
            cart.Add(film4);


skal de ikke gemmes i session til sidst ?

ala :

          ArrayList cart;

            cart.Add(film1);
            cart.Add(film2);
            cart.Add(film3);
            cart.Add(film4);
          Session["ShoppingCart"] = cart;
Avatar billede jokkejensen Novice
07. november 2006 - 15:17 #8
never mind.. :)
Avatar billede ircnoob Nybegynder
07. november 2006 - 16:37 #9
Ved i hvad jeg opdaterer lige ..

Altså mit basale problem lige nu, er at jeg har en indkøvskurv(txtbox) på master pagen, som jeg jo så gerne skulle kunne tilføje varer til fra nogen af websiderne fra... men selvom der er get og set på den, så kan jeg ikke tilføje noget til kurven .. ?=
Avatar billede ircnoob Nybegynder
07. november 2006 - 17:08 #10
shit så regnede jeg den ud :)

nu virker det, blot ikke regnet ud hvad jeg burde bruge sessions til .. virker overflødigt
Avatar billede ircnoob Nybegynder
07. november 2006 - 17:42 #11
owkay .. nu har jeg nok regnet ud hvorfor hehe .. Virker fint med at tilføje musik ellerfilm til kurven, MEN når jeg så går til en ny side.. Så glemmer den alt om indkøbskurvens indhold.. hvordan kommer jeg ud over det ?
Avatar billede ircnoob Nybegynder
07. november 2006 - 18:00 #12
Virker som sådan hvis jeg bruger vølgende..På masterpage load:
Problemet er dog at jeg i session nu har anbragt listen over film, og det er jo egentlig ikke det jeg burde, burde have gemt de film jeg klikkede og valgte på siden i stedet jo.. hvorn gør jeg lige det.. ?  (er færdig nu, point når jeg får løst dette hehe)

ArrayList cart = (ArrayList) Session["ShoppingCart"]:

foreach (Film f in cart)
{
  Indkøbskurv += f.getTitle() + f.getPrice();
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester