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 :

[VB.Net] - Datagrid et shopping cart


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 52
    Par défaut [VB.Net] - Datagrid et shopping cart
    Bonjour, j'essaie de faire un shopping cart en ASP.NET en utilisant un datagrid. Le datagrid contient des champs textes, un DropDownList pour sélectionner la taille et un TextBox pour entrer la quantité.

    Cliquer ici pour voir le modèle du datagrid

    Le problème: Lorsque je clique sur Ajouter, je n'arrive pas a obtenir la valeur ACTUELLE du DropDownList et du Textbox, il me donne les valeurs que les controles avaient lors du Load de la page.

    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
     
    Private Sub dgProduits_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgProduits.ItemCommand
            If e.CommandName = "ajouter" Then
                Dim r As DataRow
                r = Session("cart").NewRow
                r(0) = e.Item.Cells(0).Text
                r(1) = e.Item.Cells(1).Text
                r(2) = e.Item.Cells(3).Text
                Dim dl As DropDownList = CType(e.Item.FindControl("ddlTaille"), DropDownList)
                r(3) = dl.SelectedItem.Text
     
                Dim tx As TextBox = CType(e.Item.FindControl("txtqte"), TextBox)
     
                r(4) = tx.Text
     
                Session("cart").Rows.Add(r)
                bindprod()
            End If
    End Sub
     
     
    Sub bindprod()
            dgProduits.DataSource = dsprod.Tables(0).DefaultView
            dgProduits.DataBind()
            dgCart.DataSource = dv
            dgCart.DataBind()
    End Sub
    Merci d'une aide quelconque!

    Le tag [ASPX] n'est plus nécessaire, merci de lire les règles du forum (Ditch)

  2. #2
    Membre confirmé Avatar de boleduch
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 141
    Par défaut
    Hello,

    Tu as mis un if ( !IsPostBack ) dans le Load de ta page ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 52
    Par défaut
    Hum non, mais je suis un peu confu à savoir quelle partir de mon code devrait etre dans le !IsPostBack et quelle ne devrait pas...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Placez ici le code utilisateur pour initialiser la page
            sql = "select id_produit,nom,description,prix_unitaire from produits order by categorie,id_produit"
            dsprod = remplirDS(sql, "produits")
     
            dv = New DataView(Session("cart"))
     
            bindprod()
    End Sub

  4. #4
    Membre confirmé Avatar de boleduch
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 141
    Par défaut
    Là il me semble que tu peux mettre tout ce qu'il ya dans ton Page_load dans un if ( !IsPostBack )

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 52
    Par défaut
    Le problème est que quand je fais le postback il ne trouve pas la table(0) de mon dataset. Si je met le SQL et remplirDS en dehors du !IsPostBack, ca ne plante pas mais apres le reload de ma page mon shopping cart n'est plus affiché.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            sql = "select id_produit,nom,description,prix_unitaire from produits order by categorie,id_produit"
            dsprod = remplirDS(sql, "produits")
     
            If Not IsPostBack() Then
                dv = New DataView(Session("cart"))
                bindprod()
            End If

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 52
    Par défaut
    Ok en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            sql = "select id_produit,nom,description,prix_unitaire from produits order by categorie,id_produit"
            dsprod = remplirDS(sql, "produits")
            dv = New DataView(Session("cart"))
     
            If Not IsPostBack() Then
                bindprod()
            End If
    Ca marche!

  7. #7
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Bonjour xVINCEx
    Citation Envoyé par La règle du forum
    Utilisation des tags:
    Afin de faciliter la recherche et la navigation sur ce forum, nous avons mis en place un système de tags (Mots clés entre crochets dans les titres des messages). Ces tags ont pour but de déterminer de manière immédiate le langage en question : ...
    voir > http://www.developpez.net/forums/viewtopic.php?t=326091
    Soyez rigoureux quant aux respects des règles du forum, elles vous garantissent également les réponses les plus appropriées à résoudre votre souci, tout en veillant à ne pas incommoder inutilement les professionnels qui donnent benevolement de leur compétence à vous répondre. Veillez à vous mettre en règle en éditant votre post afin de modifier votre titre en conséquence. Je vous remercie de votre attention à maintenir le forum agréable et efficace.
    (Bouton en haut à droite du premier post de ce thread)
    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] DataGrid et double click
    Par mic56 dans le forum Windows Forms
    Réponses: 15
    Dernier message: 01/11/2006, 04h37
  2. [VB.NET] DataGrid et CheckBox
    Par nmerydem dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/06/2004, 15h52
  3. [VB.NET] Datagrid + CheckBox : Cocher toutes les cases
    Par sirex007 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 24/05/2004, 15h33
  4. [VB.NET] Datagrid - Récupérer CheckBox cochées
    Par nmerydem dans le forum ASP.NET
    Réponses: 16
    Dernier message: 18/05/2004, 13h28
  5. [VB.NET] Datagrid dans tabstrip : bug ?
    Par necro dans le forum ASP.NET
    Réponses: 13
    Dernier message: 23/02/2004, 10h23

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