IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Gestion de panier ASPNET & C#


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Gestion de panier ASPNET & C#
    Bonjours à Tous


    j'ai créé un site web qui présente des produits (à partie d'une BD SqlServer). Mon but est de permettre aux utilisateurs d'ajouter le produit au panier via son identificateur.

    j'utilise pour ça le Global.asx, dans la section Session_start j'ai fait comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    void Session_Start(object sender, EventArgs e) 
        {
            // Code qui s'exécute lorsqu'une nouvelle session démarre
            int[] Panier = new int[100];
            int nbrProd = 0; 
            Session.Add("Mon_Panier",Panier); // va contenir les ID de produits ajoutés
            Session.Add("nbrProdCom", nbrProd); // va contenir le nombre des produits ajoutés
        }
    j'ai essayé de récupérer ces variables de Session, pour les modifier et les réinjecté dans les variables Session , dans des variables intermédiaires respectivement de type int[] et int

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            int idProduit;
            idProduit = int.Parse(TextBox1.Text.ToString());
            int[] tabInt = new int[100]; 
            tabInt = (int[])  Session["Mon_Panier"];
            int pos = (int)   Session["nbProdCom"];
            tabInt[pos + 1] = idProduit;
            Session["Mon_Panier"] = tabInt;
    mais lors de l'éxécution ça pas marché!!!!!

    S il vous plait : quelqu'un possède un exemple détaillé sur la façon de faire la gestion de panier (récupération, traitement de contenu: modification , ajout et suppression...)?

    ET merci d'avance

  2. #2
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    Tu devrais te créer des objets, un peu comme ceci, c'est à peaufiner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Panier
    {
         public string NomPanier;
         public string CouleurPanier;
         public Dictionnary<int,Produit> Produits;
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class Produit
    {
          public int ID
          public string 
    }
    et ensuite dans ta page tu y accèdes de facon typee directement comme ca :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public Panier MonPanier
    {
       get
          {
             return (Panier)Session["Panier"];
          }
       set
          {
             Session["Panier"]=value
          }
    }
    mais va jeter un coup d'œil sur le net je suis sur que cela existe quelque part...

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bonjour

    j'ai présenté comme vous m'avez indiqué le produit sous forme d'une classe, et j'ai déclarer dans le Session_Start une variable de type Arraylist, et à chaque fois que le user ajoute un produit au panier l'objet est insérer dans le array liste.
    Le problème menant est que je vaux récupérer les produit ajoutés précèdement au panier et les afficher dans une page à part que j'ai nommé Panier.aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        void Session_Start(object sender, EventArgs e) 
        {
            ArrayList vectorPanier = new ArrayList();
            Session.Add("Panier", vectorPanier);
        }
    ---------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        protected void Button1_Click(object sender, EventArgs e)
        {
            int idProduit;
            idProduit = int.Parse(TextBox1.Text.ToString());
            double prix = double.Parse(TextBox2.Text.ToString());
            Produit Prod = new Produit(idProduit, prix);
            ((ArrayList)Session["Panier"]).Add(Prod);
        }

  4. #4
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    Bon je t'ai concocté un petit exemple, bon courage à toi. J ai mis mes classe directement avec ma page chose à ne pas faire, mais c'était pour le bien de mon exemple, de même j ai pris le oninit de la page comme un oninit d'application

    n'hésites pas si tu as des choses que tu ne comprends pas :

    Page aspx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     <h2>
            Welcome to ASP.NET!
        </h2>
        <p>
            To learn more about ASP.NET visit <a href="http://www.asp.net" title="ASP.NET Website">www.asp.net</a>.
        </p>
        <p>
            You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&amp;clcid=0x409"
                title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>.
        </p>
     
     
     
        <asp:Repeater runat=server ID=C_Rep_ContenuPanier DataSource="<%# MonPanier.Produits %>">
            <HeaderTemplate>
                <Table>
                    <Tr>
                        <Td>Quantite</Td>
                        <Td>Produit</Td>
                        <Td>Produit ID</Td>
                    </Tr>
            </HeaderTemplate>
            <ItemTemplate>
                <Tr>
                        <Td>
                            <%--<%# Container.DataItem.GetType().ToString() %> utilisé pour connaitre le type à caster--%>
                            <%# ((KeyValuePair<int, WebApplication1.Produit>)Container.DataItem).Key%>
                        </Td>
                        <Td>
                            <%# ((KeyValuePair<int, WebApplication1.Produit>)Container.DataItem).Value.name%>
                        </Td>
                        <Td>
                            <%# ((KeyValuePair<int, WebApplication1.Produit>)Container.DataItem).Value.ID%>
                        </Td>
                    </Tr>
     
            </ItemTemplate>
            <FooterTemplate>
                </Table>
            </FooterTemplate>
        </asp:Repeater>

    code behind :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
     
    namespace WebApplication1
    {
        public class Panier
    {
            private Dictionary<int,Produit> _Produits;
         public string NomPanier;
         public string CouleurPanier;
     
         public Dictionary<int,Produit> Produits
         {
             get
             {
                 if (_Produits==null)
                     _Produits= new Dictionary<int,Produit>();
                 return _Produits;
             }
             set
             {
                 _Produits= value;
             }
         }
     
    }
        public class Produit
    {
          public int ID;
          public string name;
    }
        public partial class _Default : System.Web.UI.Page
        {
     
            public Panier MonPanier
    {
       get
          {
             return (Panier)Session["Panier"];
          }
       set
          {
              Session["Panier"] = value;
          }
    }
     
            protected override void  OnInit(EventArgs e)
            {
                //intiialisation de mon appli
                Session["Panier"] = new Panier();
                base.OnInit(e);
            }
            protected void Page_Load(object sender, EventArgs e)
            {
                //on met un peu d'info dans ce panier
                Produit dent;
                dent = new Produit();
                dent.ID = 1;
                dent.name = "dentifrice";
                //on ajoute 5 dentifrices
                MonPanier.Produits.Add(5, dent);
     
                //puis en 3.5, on ajoute 10 brosses a dents
                MonPanier.Produits.Add(10, new Produit{ ID=2,name="Brosse à dents"  });
     
            }
     
            protected override void OnPreRender(EventArgs e)
            {
                //et maintenant je mets à jour mon repeater pour afficher mes infos
                C_Rep_ContenuPanier.DataBind();
     
                base.OnPreRender(e);
            }
        }
    }

Discussions similaires

  1. Gestion de Panier - Quantité d'article modifiable.
    Par abdelali-bdr dans le forum ASP.NET
    Réponses: 4
    Dernier message: 20/05/2011, 13h40
  2. Gestion de panier?
    Par js8bleu dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/07/2009, 13h55
  3. Gestion de panier
    Par achio350 dans le forum Langage
    Réponses: 1
    Dernier message: 13/11/2008, 13h43
  4. [MySQL] Gestion de panier et timeout
    Par moabomotal dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 02/10/2007, 10h43
  5. Réponses: 5
    Dernier message: 22/03/2006, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo