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 :

Evenement RowUpdating avec GridView


Sujet :

ASP.NET

  1. #1
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut Evenement RowUpdating avec GridView
    Bonjour,

    J'ai créé une application web qui permet de créer dynamiquement les colonnes d'un GridView. Je n'utilise que des Boundfield, ImageField, CheckBoxField, donc pas de Template.

    Lorsque l'utilisateur fait un update d'un record et qu'il le valide, j'ai quelques problèmes à récupérer les valeurs entrées... Ce qui me pose quelques petits problèmes.

    Pouvez-vous m'éclairer ?

    Merci
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  2. #2
    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
    Je ne pense pas que c'est possible à ma connaissance, ces controls n'ont pas d'ID.

    Quel est ton problème avec les TemplateFields ?

    [Edit]
    En reflichissant bien, je pense que c'est possible en jouant avec les propriétés Rows, Cells et Controls de ta GridView mais pas avec FindControl
    [/Edit]
    Mehdi Feki : Modérateur .Net

  3. #3
    Membre averti
    Homme Profil pro
    Consultant SharePoint
    Inscrit en
    Mars 2006
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant SharePoint
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 270
    Points : 308
    Points
    308
    Par défaut
    jpense que le problème vient surtout du viewstate, puisque tes controles et colonnes ne seront pas déclarés au chargement de la page...
    mais je pense qu'y a une solution...sauf que je la connais pas!
    je sais qu'on peut ajouter des rows a la volée en rebindant la gridview, alors pk pas des colonnes...
    moi j'ai construit une gridview sans sqlDataSource, avec des données provenant de List<>...tu construis une datatable et apres tu la met en datasource + bind... et ca marche. il faudrait essayer de prendre ta gridview, ajouter des colonnes a la volée et replacer la datatable en entrée de la gridview + bind().
    tu ne sais pas combien tu peux avoir de colonnes au maxi??

  4. #4
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Pour être plus précis, j'ai une classe avec un nombre indéterminé de propriétés qui représentent les colonnes de mon DataGridView.

    Sur base d'une telle classe, je vais :
    • Construire un dataset sur bases des propriétés
    • Remplir le dataset de données
    • Construire les colonnes du GridView
    • Bind du dataset avec le GridView
    Pour ces étapes pas de problèmes, mais je ne comprend pas comment récupérer les valeurs qui ont été entrées :s Je me suis même étonné de lire que ce ne serait apparement pas possible

    La raison pour laquelle je n'utilise pas les Template, c'est que je ne savais pas comment (dynamiquement) créer un colonne template avec un DropDowList dedans par exemple. J'ai donc opté pour la solution de redéfinir tous les types de colonnes en dérivant de la classe BoundField.
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  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
    T'as essayé ce genre de truc :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
    ((TextBox)((GridView)sender).Rows[e.RowIndex].Cells[0].Controls[0]).Text
    }
    Mehdi Feki : Modérateur .Net

  6. #6
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Citation Envoyé par mehdi_tn
    T'as essayé ce genre de truc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
    ((TextBox)((GridView)sender).Rows[e.RowIndex].Cells[0].Controls[0]).Text
    }

    Ah mais tu vois !!!! Ca fonctionne :p

    J'étais pourtant sûr d'avoir essayé ça... Enfin, au moins c'est reparti.


    beaucoup !!!!
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  7. #7
    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
    Citation Envoyé par Cardi
    Ah mais tu vois !!!! Ca fonctionne :p
    D'où l'edit d'hier

    Citation Envoyé par mehdi_tn
    [Edit]
    En reflichissant bien, je pense que c'est possible en jouant avec les propriétés Rows, Cells et Controls de ta GridView mais pas avec FindControl
    [/Edit]
    Mehdi Feki : Modérateur .Net

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

Discussions similaires

  1. Utiliser Evenement KeyDown avec un controle ActiveX
    Par parp1 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 31/05/2007, 14h24
  2. Evenement exterieurs avec GTK
    Par wetwilly dans le forum GTK+
    Réponses: 2
    Dernier message: 28/05/2007, 23h14
  3. Prb avec Gridview.DataKeyNames
    Par davidso dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/03/2007, 14h10
  4. [asp.net2] Probleme avec GridView
    Par mikky dans le forum ASP.NET
    Réponses: 7
    Dernier message: 21/02/2007, 16h38
  5. [Evenement] Probleme avec un JList
    Par mawashee dans le forum Composants
    Réponses: 3
    Dernier message: 06/12/2004, 18h45

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