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 RowUpdating problème


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Par défaut GridView RowUpdating problème
    Bonjour

    je vais exposer mon problème dans un nouveau sujet bien que ce soit exactement le même problème que celui-ci :

    http://www.developpez.net/forums/d36...ng-source-sql/

    Sauf que la solution suggérée par l'auteur du post ne fonctionne pas chez moi et je ne vois pas pourquoi.

    je suis exactement dans la même situation :

    J'ai un gridview lié à un dataset (retenu dans le ViewState)...Je suis obligé de procéder comme celà.

    Le gridview s'affiche bien, j'ai su rajouter des données sans problème.


    Bon je bloque sur l'édition...en fait sur l'évenement RowUpdating.


    Je n'arrive pas à accéder aux nouvelles informations.
    voici les bouts de code intéressant :

    Dans mon codebehind:
    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
     
     
     
    private void BindCRAData()
            {
                DataSet dataCra = (DataSet)ViewState["dataCra"];
                if (dataCra != null)
                {
                    gridViewCRA.DataSource = dataCra.Tables[0];              
                    gridViewCRA.DataBind();
                }
            }
     
    protected void gridViewCRA_RowEditing(object sender, GridViewEditEventArgs e)
            {
                gridViewCRA.EditIndex = e.NewEditIndex;
                BindCRAData();
            }
     
    protected void gridViewCRA_RowUpdating(object sender, GridViewUpdateEventArgs e)
            {           
                GridViewRow row = gridViewCRA.Rows[e.RowIndex];            
                if (row != null)
                {               
                    GridViewRow grv = gridViewCRA.Rows[e.RowIndex];               
                    string newDescription = ((TextBox)(grv.Cells[2].Controls[0])).Text;
                    string tempdate = ((TextBox)(grv.Cells[4].Controls[0])).Text;              
                   //(....)
                }
            }
    ma grid est déclarée comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <asp:GridView ID="gridViewCRA" runat="server" AutoGenerateEditButton="True"                       
                style="top: 10px; left: 23px; position: absolute; height: 137px; width: 387px" 
                onrowcancelingedit="gridViewCRA_RowCancelingEdit" 
                onrowediting="gridViewCRA_RowEditing" onrowupdated="gridViewCRA_RowUpdated" 
                onrowupdating="gridViewCRA_RowUpdating" AutoGenerateColumns="False">
                <Columns>           
                <asp:BoundField DataField="DESCRIPT" HeaderText="Activité" />
                <asp:BoundField DataField="CRA_ID" Visible="false" />
                <asp:BoundField DataField="DATE" HeaderText="Date" DataFormatString="{0:d}" />            
                </Columns>
     
            </asp:GridView>
    donc rien qui me paraisse bien original.
    Evidemment, dans mon évènement RowUpdating, les collections e.NewValues et e.OldValues sont vides mais ça j'ai cru comprendre que c'était normal et que ça venait du binding avec les données.

    ok, donc la solution c'est d'aller taper directement au niveau des contrôles de la page dans lesquels sont écrits les nouvelles valeurs, soit, mais lorsque je fais ça, c'est les anciennes valeurs que j'obtiens, comme s'il n'y avait pas eu d'édition.

    précisement lorsque je débogue sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string newDescription = ((TextBox)(grv.Cells[2].Controls[0])).Text;
    j'obtiens la valeur avant édition alors que je suis sur et certain que c'est bien sur cette cellule que l'édition a eu lieu.

    Quelqu'un a-t-il déjà eu ce problème et pourrait me donner une piste de solution ?
    D'avance merci beaucoup...

  2. #2
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Par défaut
    personne n'a une idée svp ?
    même une piste pour essayer de trouver d'où ça vient...

    peut-être un paramètre au niveau de la page ou autre je ne sais pas...

    la méthode de parser les controles de la table pour récupérer les nouvelles valeurs n'est peut-être pas très propre mais c'est la seule que je pense être en mesure d'appliquer et elle me convient bien.

    mais là les textebox garde leurs anciennes valeurs.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Par défaut
    bon je vais gérer mon édition de ligne autrement ça ne fait rien.

    je vais utiliser des textbox statique. L'utilisateur devra sélectionner une ligne, puis cliquer sur un bouton pour éditer. Ca mettra les valeurs actuelles dans les textBox, il pourra les modifier puis cliquer sur sauvegarder et ça mettra à jour les données en rebindant le tout à ma gridView.

    c'est dommage de devoir refaire une fonctionnalité native du composant mais tant pis, je bloque trop et je dois livrer bientot.

    Merci quand même à ceux qui ont lu mon problème

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

Discussions similaires

  1. GridView RowUpdating FindControl toujours null
    Par Arnaud13 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 03/07/2014, 17h45
  2. gridview rowdatabound problème
    Par zzozo32456 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/05/2011, 13h27
  3. Réponses: 2
    Dernier message: 27/01/2011, 15h33
  4. Réponses: 21
    Dernier message: 30/12/2010, 13h33
  5. [2.0] GridView RowUpdating sans source sql
    Par frechy dans le forum ASP.NET
    Réponses: 3
    Dernier message: 12/06/2009, 16h25

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