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] gridview rowupdating: La référence d'objet n'est pas définie à une instance d'un objet.


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [VB.NET] gridview rowupdating: La référence d'objet n'est pas définie à une instance d'un objet.
    Bonjour tout le monde,
    depuis plus d'une semaine je parcours le net pour une solution au problème ci-dessous.
    J'ai un gridview que je remplis après clic sur un bouton qui exécute une requête sql avec la clause where définit.
    capture de la definition du gridview

    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
        <asp:GridView ID="dgvAgent" runat="server" CellPadding="4" ForeColor="#333333" AllowSorting="True"
            GridLines="None" AutoGenerateColumns="False" AutoGenerateEditButton="True" DataKeyNames="Matricule" 
            >
            <RowStyle BackColor="#E3EAEB" />
            <Columns>
                <asp:BoundField DataField="Matricule" HeaderText="Matricule:" ReadOnly="false" 
                    SortExpression="Matricule" />
                <asp:BoundField DataField="Nom" HeaderText="Nom:" SortExpression="Nom" />
               <asp:BoundField DataField="Compte" HeaderText="Compte:" 
                    SortExpression="Compte" />
                <asp:BoundField DataField="Categorie" HeaderText="Categorie:" 
                    SortExpression="Categorie" />
                <asp:BoundField DataField="Sexe" HeaderText="Sexe:" SortExpression="Sexe" />
            </Columns>
            <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
            <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
            <EditRowStyle BackColor="#7C6F57" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>
    ci dessous la portion de mon code qui renvoie l'erreur signalé dans l'intitulé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Protected Sub dgvAgent_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles dgvAgent.RowUpdating
    
            Dim index As Integer = dgvAgent.EditIndex
            Dim row As GridViewRow = dgvAgent.Rows(index)
            Dim nom As String
            Dim t1 As New TextBox
            t1 = dgvAgent.Rows(dgvAgent.EditIndex).Cells(2).FindControl("Nom")
            nom = t1.Text
    La référence d'objet n'est pas définie à une instance d'un objet.
    ...
    
    end sub
    nb:
    ci dessous mon code dans le rowediting
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Protected Sub dgvAgent_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles dgvAgent.RowEditing
            dgvAgent.EditIndex = e.NewEditIndex
            BindData()
    end sub
    ci-dessous le code de la procédure binddata()
    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
     
    Public Sub BindData()
     
            Dim Requete As String
            Requete = "select * from agent where nom like '%" & Me.txtRechercher.Text & "%'"
            Dim daAgent As New SqlDataAdapter(Requete, ChaineDeConnexion)
            Dim AgentDs As New dsEcoSante
            AgentDs.EnforceConstraints = False
            daAgent.Fill(AgentDs.AGENT)
     
            dgvAgent.DataSource = AgentDs.AGENT.DefaultIfEmpty
            'dgvAgent.DataKeyNames = "matricule"
            dgvAgent.DataBind()
            lblNombreEnregistrement.Text = dgvAgent.Rows.Count.ToString & " enregistrement(s) trouvé(s)."
     
    End Sub
    ci dessous la procédure qui charge les donnees dans le gridview
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Protected Sub CmdRechercher_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles CmdRechercher.Click
            BindData()
    End Sub
    j'espère avoir fourni toutes les info devant vous permettre de m'aider plus efficacement.
    Prière me donner un coup de main pour me sortir de cette frustration.
    merci d'avance

  2. #2
    Membre actif Avatar de Yolak
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 341
    Points : 206
    Points
    206
    Par défaut
    Heuu... La listBox n'est pas créée ?

    il faudrait pas affecter une listbox à ta variable ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Yolak Voir le message
    Heuu... La listBox n'est pas créée ?

    il faudrait pas affecter une listbox à ta variable ?

    cool yolak
    merci yolak de te pencher sur mon problème. je suppose que tu fais allusion à mon textbox t1(je n'ai pas de listbox dans mon code).
    en réalité j'avais écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Protected Sub dgvAgent_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles dgvAgent.RowUpdating
    
            Dim index As Integer = dgvAgent.EditIndex
            Dim row As GridViewRow = dgvAgent.Rows(index)
            Dim nom As String
            Dim t1 As New TextBox
            t1 = ctype(dgvAgent.Rows(dgvAgent.EditIndex).Cells(2).FindControl("Nom"),textbox).
        nom = t1.Text
    mais j'avoue que je ne comprend pas ce que tu tentes de m'expliquer.

  4. #4
    Membre actif Avatar de Yolak
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 341
    Points : 206
    Points
    206
    Par défaut
    Effectivement, je faisais allusion a ta textbox. Désolé...

    Ce que je veux dire, c'est que moi, quand j'utilise une variable de type textbox (ou listbox :p), je lui affecte une textbox que j'ai créé au préalable, soit par programmation, soit par création graphique.

    Sur ma fenêtre, j'ai une textbox qui se nomme textbox1 et dans le code:
    t1=textbox1

    Sinon, par programmation, essaye d'ajouter :
    Avant de lui affecter une valeur...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Points : 174
    Points
    174
    Par défaut
    Visiblement cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dgvAgent.Rows(dgvAgent.EditIndex).Cells(2).FindControl("Nom")
    te renvoie null.
    Je suis pas expert mais je ne suis pas sur que FindControl("Nom") puisse marcher vu qu'il ne semble pas qu'il y est un control qui est comme id "Nom" dans dgvAgent.

    à plus.

  6. #6
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par davjan Voir le message
    Visiblement cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dgvAgent.Rows(dgvAgent.EditIndex).Cells(2).FindControl("Nom")
    te renvoie null.
    Je suis pas expert mais je ne suis pas sur que FindControl("Nom") puisse marcher vu qu'il ne semble pas qu'il y est un control qui est comme id "Nom" dans dgvAgent.

    à plus.
    bonjour davjan,
    c'est exactement la que le problème se pose.
    cependant pour moi une des spécificités du gridview est que la propriété datafield fait office de id quand on est en mode édition. aucune propriété du genre id n'existe dans les gridview.
    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:BoundField DataField="Nom" HeaderText="Nom:" SortExpression="Nom" />
    Mais alors comment atteindre cette cellule(ce champ) dans l'évènement rowupdating? C'est évident qu'il y a un petite manip qui nous échappe.merci de t'être pencher sur mon cas mais surtout ne m'abandonne pas.

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    tu peux utiliser ce code pour récuperer le nom:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.GridView1.Rows(0).Cells(0).Text
    sachant que Row(0) c'est la 1 ere ligne mais si tu veux la ligne courante
    tu n'a qu'a recuperer son index et le mette à la place de 0.

  8. #8
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    SVP

    mon probleme c'est que rien ne ce passe dans le bout de code que
    j'ai programmer dans le Rowupdated quand je clique sur mettre à jour.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Points : 174
    Points
    174
    Par défaut
    Et en essayant tout simplement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     nom = dgvAgent.Rows(dgvAgent.EditIndex).Cells(1).Text

  10. #10
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    bonjour

    mon probelem c'est que rien ne se passe quand je clik sur le boutton modifier
    sur l'evenement Rowupdating

    voilà mon code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    actualiser()
            id_choix = Me.GridView1.Rows.Item(Me.GridView1.EditIndex).Cells(0).Text
            Dim ligne() As Data.DataRow
            ligne = DS.Tables("choix").Select("id_choix = " + id_choix.ToString + " and id_visiteur=" + 27)
            ligne(0)(2) = Me.GridView1.Rows.Item(Me.GridView1.EditIndex).Cells(2).Text
            ligne(0)(3) = Me.GridView1.Rows.Item(Me.GridView1.EditIndex).Cells(3).Text
            ligne(0)(4) = Me.GridView1.Rows.Item(Me.GridView1.EditIndex).Cells(4).Text
            DA = New OleDbDataAdapter("select * from choix", con)
            com_return = New OleDbCommandBuilder(DA)
            DA.Update(DS, "choix")
            actualiser_liste()

  11. #11
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par davjan Voir le message
    Et en essayant tout simplement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     nom = dgvAgent.Rows(dgvAgent.EditIndex).Cells(1).Text
    je n'ai plus l'erreur mais j'obtiens une chaîne vide. Pourtant cette cellule contient bien une valeur.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Points : 174
    Points
    174
    Par défaut
    En cherchant sur le net j'ai trouvé ceci:
    http://www.aspdotnetcodes.com/GridVi...te_Delete.aspx

    Dans l'article ils utilise le RowIndex et pas le EditIndex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom = dgvAgent.Rows(e.RowIndex).Cells(1).Text;
    à plus bon courage

  13. #13
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par davjan Voir le message
    En cherchant sur le net j'ai trouvé ceci:
    http://www.aspdotnetcodes.com/GridVi...te_Delete.aspx

    Dans l'article ils utilise le RowIndex et pas le EditIndex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom = dgvAgent.Rows(e.RowIndex).Cells(1).Text;
    à plus bon courage
    j'ai une chaine vide avec ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom = dgvAgent.Rows(e.RowIndex).Cells(1).Text
    et
    La référence d'objet n'est pas définie à une instance d'un objet.
    avec ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    t1 = dgvAgent.Rows(e.RowIndex).Cells(2).FindControl("Nom")

  14. #14
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    tu doit mettre le name de texte box du code source du datagrid en mode
    creation dans le code behinde pas le titre de la colonne "Nom"

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:TextBox ID="txt_nom" runat="server" Text='<%# Bind("nom") %>'></asp:TextBox>
    mais moi aussi j'ai tésté les deux ça marche pas il m'affiche les 2 erreur que tu as

    1-reference d'objet n'ai pas défini......
    2-chaine vide

  15. #15
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    voilà l'erreur qui m'affiche avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgvAgent.Rows(e.RowIndex).Cells(2).FindControl("txt_nom")
    System.Web.UI.WebControls.DataControlFieldCell
    si tu as trouvé quelque chose envois la STP

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Points : 174
    Points
    174
    Par défaut
    Hello voilà comment il faut procéder.

    dans la partie aspx tu n'utilise pas les controles aspBoundField mais tu définit des templates: un pour le mode visualisation et un pour le mode édition.Dedans tu met des texboxs ou autre pour lesquels tu peux mettre un identifiant qui te servira après, soit:

    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
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                AutoGenerateEditButton="True" DataKeyNames="truc"
                OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" 
              onrowupdated="GridView1_RowUpdated" 
                 ShowFooter="false" 
                onrowcommand="GridView1_RowCommand">
                <Columns>
                      <asp:TemplateField HeaderText="nom" SortExpression="nom">
                        <EditItemTemplate>
                            <asp:TextBox  ID="Label1" runat="server" Text='<%# Bind("nom") %>' />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:TextBox  ID="Label2" runat="server"  Text='<%# Eval("nom") %>' />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="truc" SortExpression="truc" > 
                        <EditItemTemplate>
                            <asp:TextBox  ID="Label3" runat="server" Text='<%# Bind("truc") %>' TextMode ="MultiLine"  />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:TextBox  ID="Label4" runat="server"  Text='<%# Eval("truc") %>' />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
                <EditRowStyle BackColor="#FF99CC" />
     
            </asp:GridView>
    Dans mon exemple ma base contient deux colonnes : nom et truc, à toi d'adapter le code pour qu'il correspond à tes champs.

    Dans le code behind:
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                populateGridView();
     
            }
        }
        private void populateGridView()
        {
            SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");
            conn.Open();
            SqlCommand comm = new SqlCommand("select * from gens", conn);
            GridView1.DataSource = comm.ExecuteReader();
            GridView1.DataBind();
            conn.Close();
        }
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
     
            TextBox t1 = (TextBox)GridView1.Rows[e.RowIndex].FindControl("Label1"); 
     
            TextBox t3 = (TextBox) GridView1.Rows[e.RowIndex].FindControl("Label3")  ;
            update(t3.Text, t1.Text); 
    GridView1.EditIndex = -1;
            populateGridView();
     
     
        }
        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            populateGridView();
        }
     
     
        private void update(string text,string nom)
        {
            SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");
            conn.Open();
            SqlCommand comm = new SqlCommand("update gens set truc='" + text.Trim() + "' where nom='" + nom.Trim() + "';", conn);
            comm.ExecuteNonQuery();
            conn.Close();
     
     
        }
    Les fonctions sont les suivante:- PopulateGridView qui remplit la GridView avec la source de donnée.
    -Update qui modifie dans la base suivant les modifications fait dans les controles.
    - row_Updating qui transmet à update ces modifications. Tu noteras que l'on peux utiliser findControl cette fois puisque les templates contiennent des controles avec des id.
    -Et row_editing qui initialise l'édition.
    Il faut faire bien attention de mettre if (!IsPostBack) avant le populateGridView du pageLoad car sinon lorsque tu clic sur update , cela déclenche un postback et les controles reprennent leur valeur de départ malgré le fait que tu ai tapé autre chose.

    à plus

    pardon j'ai pas réfléchis j'ai tout fais en c# . tu pourras traduire?

  17. #17
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    ne marche toujours pas, regarde mon bout de code sur la
    grille datagridview1

    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
    <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" 
            BorderWidth="1px" ShowFooter="True" AutoGenerateColumns="False" DataKeyNames="choix"
     
            OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating"  onrowupdated="GridView1_RowUpdated"  >
            <RowStyle BackColor="#FFE8FF" />
            <Columns>
                <asp:BoundField DataField="choix" HeaderText="choix" />
                <asp:TemplateField HeaderText="Demande">
                    <EditItemTemplate>
                        <asp:TextBox ID="txt_demande" runat="server" Text='<%# Bind("demande") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("demande") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
    ---------------
    pour le code de page_load

    actualiser_liste()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If Not IsPostBack Then
                actualiser()
                For i As Integer = 0 To DS.Tables("categorie").Rows.Count - 1
                    Me.cmb_categ.Items.Add(DS.Tables("categorie").Rows(i)("categorie"))
                Next
     
     
            End If
    ----------------------
    pour le row_editing
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    GridView1.EditIndex = e.NewEditIndex
            GridView1.DataBind()
            actualiser_liste()
    ---------------------
    pour le rowupdateing[/B]


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    demande = CType(GridView1.FindControl("txt_demande"), TextBox).Text
            Response.Write(demande)
            GridView1.EditIndex = -1
            actualiser_liste()
    + code de modification par la suite

    il m'affiche le message :
    la reference d'objet n'est pas definit .................

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Points : 174
    Points
    174
    Par défaut
    Dans ton code tu n'as pas précisé la ligne qui est en train d'être édité avant de faire le findControl:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GridVIew1.Rows[e.RowIndex].FindControl(...
    C'est peut-être ça qui cause ton exception.

  19. #19
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Points : 15
    Points
    15
    Par défaut grille
    voilà que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
           GridView1.EditIndex = e.RowIndex
            demande = CType(GridView1.Rows(e.RowIndex).FindControl("txt_demande"), TextBox).Text

    mais

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Points : 174
    Points
    174
    Par défaut
    Comment tu modifie tes textBox? N'oublie pas qu'il faut passer par un bouton edit avant de pouvoir modifier les champ sinon le gridView est en mode visualisation et il est normal que le findControl ne marche pas. L'attribut AutoGenerateEditButton doit être égal à true dans ton gridview si tu veux qu'il y est un lien edit (ou modifier).

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/11/2013, 10h24
  2. Réponses: 2
    Dernier message: 01/08/2013, 15h40
  3. Réponses: 8
    Dernier message: 04/06/2007, 16h20
  4. Réponses: 24
    Dernier message: 01/06/2007, 09h26
  5. Réponses: 8
    Dernier message: 11/07/2006, 17h27

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