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 :

GridView ASP.NET C# : Manipuler les cellules d'une ligne à mettre à jour


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 51
    Points : 35
    Points
    35
    Par défaut GridView ASP.NET C# : Manipuler les cellules d'une ligne à mettre à jour
    Bonjour,
    Afin de mettre à jour les données d'une BD SQL Server, j'utilise une gridview. Cependant, j'ai besoin d'effectuer une ensemble de vérification avant que la mise à jour puisse s'appliquer.
    Pour cela, j'ai crée une méthode dans la partie C# de mon projet ASP.NET. Ma question est la suivante : comment récupérer la valeur des cellules de la ligne à mettre à jour.
    J'ai besoin d'analyser ces valeurs dans la méthode suivante :

    void gdvRules_RowUpdating(object sender, GridViewUpdateEventArgs e)

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Points : 633
    Points
    633
    Par défaut
    le e ne contient pas l'index de la rangée ?
    Il te suffit alors de parcourir colonne par colonne non ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Nuloprog Voir le message
    Bonjour,
    Afin de mettre à jour les données d'une BD SQL Server, j'utilise une gridview. Cependant, j'ai besoin d'effectuer une ensemble de vérification avant que la mise à jour puisse s'appliquer.
    Pour cela, j'ai crée une méthode dans la partie C# de mon projet ASP.NET. Ma question est la suivante : comment récupérer la valeur des cellules de la ligne à mettre à jour.
    J'ai besoin d'analyser ces valeurs dans la méthode suivante :

    void gdvRules_RowUpdating(object sender, GridViewUpdateEventArgs e)

    Pour manipuler la ligne et les cellules, tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Sélection de la cellule courante
                    DataGridViewCell myCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] ;
                    // Sélection des cellules de la ligne courante         
                    DataGridViewCellCollection myCellsRow = dataGridView1.Rows[e.RowIndex].Cells;

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Nuloprog Voir le message
    Bonjour,
    Afin de mettre à jour les données d'une BD SQL Server, j'utilise une gridview. Cependant, j'ai besoin d'effectuer une ensemble de vérification avant que la mise à jour puisse s'appliquer.
    Pour cela, j'ai crée une méthode dans la partie C# de mon projet ASP.NET. Ma question est la suivante : comment récupérer la valeur des cellules de la ligne à mettre à jour.
    J'ai besoin d'analyser ces valeurs dans la méthode suivante :

    void gdvRules_RowUpdating(object sender, GridViewUpdateEventArgs e)

    Pour manipuler la ligne et les cellules, tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          // Sélection de la cellule courante
                    DataGridViewCell myCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] ;
                    // Sélection des cellules de la ligne courante         
                    DataGridViewCellCollection myCellsRow = dataGridView1.Rows[e.RowIndex].Cells;

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    Merci pour vos suggestion!
    En fait, tout d'abord je tiens à préciser que je n'utilise pas de DataGridView mais une GridView. Ensuite, j'ai réussi à récuperer la valeur des cellules, mais maintenant je ne parviens pas à avoir la nouvelle valeur.

    Ainsi dans le code suivant :

    foreach (DictionaryEntry entry in e.NewValues)
    {

    String text = e.NewValues[entry.Key].ToString();
    }

    L'ancienne valeur est stockée dans la variable text au lieu de la nouvelle.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    Utilises l'event RowUpdated au lieu de RowUpdating.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    Je souhaite vérifier les valeurs avant la mise à jour c'est pourquoi j'utilise Updating

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    Tu peux utiliser les deux événements dans ce cas(RowUpdating pour la vérification et RowUpdated pour récupérer les nouvelles valeurs)

    Quand l'événement RowUpdating est déclenché, le GridView n'a pas encore mis à jour les valeurs, donc il n'a pas encore accés aux nouvelles.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 51
    Points : 35
    Points
    35
    Par défaut Problème résolu
    Merci,
    J'ai finalement trouvé la solution à mon problème. En fait, j'utilisais sans le savoir, dans une méthode appelée par le void Page_Load(object sender, EventArgs e), l'instruction suivante:
    <NomDeMaGridView>.DataBind()
    Du coup les modifications effectuées étaient effacées par les anciennes valeurs de la ligne à mettre à jour.

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

Discussions similaires

  1. Copier les cellules d'une ligne sélectionnée sur une autre feuille
    Par Liloo14 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 17/07/2013, 20h19
  2. Réponses: 3
    Dernier message: 23/05/2012, 15h03
  3. Réponses: 5
    Dernier message: 27/07/2010, 12h59
  4. Réponses: 9
    Dernier message: 16/03/2010, 11h07
  5. Mettre les cellules d'une ligne en couleur
    Par John81 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 15/09/2008, 21h20

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