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] Comment enregistrer les modifications dans un GridView ?


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut [VB.NET] Comment enregistrer les modifications dans un GridView ?
    Bonjour,
    voila j'essai d'enregistrer les modifications d'un gridview mais je n'y arrive pas.
    Le datasource de mon gridview est un dataset.
    Lorsque j'implémente la fonction "RowUpdating" je n'arrive pas à retrouver les nouvelles valeurs. la variable "e" ne contient aucun item.
    Et lorsque je regarde dans le gridview je ne vois que les anciennes valeurs.
    merci pour votre aide

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Points : 122
    Points
    122
    Par défaut
    RowUpdating ne modifie en rien le datasource de ton gridView.
    Pour récupérer les nouvelles valeurs de ton gridView, il faut que tu le parcours ligne par ligne, cellule par cellule comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    foreach (DataRow row in myGridView.Rows)
    {
      // si tu as une textBox d'ID "UserID" dans ton gridView
      TextBox tbUserID = row.FindControl("UserID") as TextBox;
      string userID = tbUserID.Text;
      ...
     
      // tu construis petit à petit ta requête SQL d'update
    }
    Attention, la syntaxe est peut-être fausse

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    merci pour la reponse,
    mais les colonnes sont générées automatiquement et je ne connais pas les id des controls.
    Lorsque je fais de cette manière en debugage, les veleurs trouvé sont les anciennes valeurs et non les nouvelles, y aurait-il une autre solution ??
    merci

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 60
    Points : 57
    Points
    57
    Par défaut
    Juste pour être sur, le databind de ton GridView est fait dans la condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(!IsPostBack)
    {
         MongridView.DataSource = masource;
         MongridView.Databind();
    }
    ?

    Sinon ça expliquerait que ton gridview soit réinitialiser à chaque postback :p

  5. #5
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Juste une question, comment tu fais le update, tu utilise bien ton datasource ou tu le fais manuellement ?
    Mehdi Feki : Modérateur .Net

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Points : 122
    Points
    122
    Par défaut
    Le datasource de ton gridView ne s'update pas.
    En plus, en debuggant, tu verras qu'il est null.
    Donc tu dois tout faire manuellement.
    Tu peux aussi mettre ton datasource (Serializable) dans ton ViewState si c'est plus pratique pour toi

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Oui je fais tout manuellement,
    j'ai récupéré les nouvelles valeurs en transformant mes colonnes en template, et avec la commande :
    GridView.Rows(e.RowIndex).Cells(i).Controls(i)
    mais maintenant pour l'update j'utilise : "nomtableadapter".update()
    mais il me faut aussi les anciennes valeurs et c'est la que je coince.
    J'ai essayer de les enregistrer en variable "protected" globale mais elle ce reinitialise, donc je ne sais pas je vais essayé de chercher encore merci

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    j'ai oublié de préciser que mon gridview est dans un multiview est-ce que ca peux apporter beaucoup de changement ??
    merci

  9. #9
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Franchement je comprends pas

    Pourquoi t'as besoin de recuperer les anciennes valeurs ???
    pourquoi ne pas laisser le dataset faire tout le boulot de l'update ?

    Tu n'as besoin d'aucune ligne de code
    Mehdi Feki : Modérateur .Net

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    je ne peux pas laisser le dataset faire l'update car dans la fonction update il me demande les deux valeurs ( nouvelle et ancienne )

  11. #11
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Bein il ne demande rien du tout le pauvre SqlDataSource !!

    Dans la propriete DataKeyNames de Ton GridView tu mes la Colonne de ta Clé Primaire. Supposons que la colonne s'appelle Id.

    Ensuite selon comment tu as fait la binding tu ecris ta requete d'update dans le DataSet.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE User SET username =@username where Id=@Id
    Tu n'as plus qu'à cocher Enable Editing dans le GridView !!!

    J'espere que c'est plus clair maintenant
    Mehdi Feki : Modérateur .Net

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    merci pour votre aide ça marche mieu maintenant.
    merci aussi à mehdi_tn
    thx

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

Discussions similaires

  1. VB.Net - Comment détecter les modifications dans un Datagridview
    Par novice123 dans le forum Windows Forms
    Réponses: 17
    Dernier message: 19/12/2008, 16h57
  2. comment enregistrer les resultats dans un fichier
    Par cmoi_doudi dans le forum JBuilder
    Réponses: 2
    Dernier message: 23/05/2008, 02h55
  3. [C#] Comment empecher les modification dans un DataGrid ?
    Par layate dans le forum Windows Forms
    Réponses: 5
    Dernier message: 06/06/2005, 17h11
  4. Réponses: 16
    Dernier message: 22/03/2005, 21h57
  5. [DOM] comment enregistrer les modifs?
    Par noobiewan kenobi dans le forum Format d'échange (XML, JSON...)
    Réponses: 26
    Dernier message: 30/07/2004, 10h56

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