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 :

recuperer la valeur d'un textbox dans un gridview


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut recuperer la valeur d'un textbox dans un gridview
    bonjour,
    comment je peux récuperer la valeur saisi dans un textbox qui se trouve à l'interieur d'un contrôle gridview

    voila ce que j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Sub gv_det_devis_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs)
     
    Dim sValeur As String = CType(monGridView.FindControl("textbox1"), TextBox).Text
     
    end sub
    mais j'obtiens le message d'erreur suivant :
    La référence d'objet n'est pas définie à une instance d'un objet

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Points : 357
    Points
    357
    Par défaut
    Déjà un conseil : renomme ton textBox pour que l'on sache ce que c'est.

    J'ai repris une appli truffée de textBox1, 2, 3, 45,28 ,93 dans le code et c'est très désagréable, je le maudis l'auteur !...

    Sinon, est-tu certain que ton textBox est accessible dans tous les modes ?

  3. #3
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 106
    Points
    3 106
    Par défaut
    Bonjour a tous,

    je ne vois pas vraiment l'interet que tu trouves a assigner le text d'un textbox a une gridview qui est un tableau.
    Tu auras un tableau avec une colonne?

  4. #4
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut
    bonjour a tous,
    1- pour ce qui est de renommer mes textbox, c'est une chose que je fait, c'est juste que je suis entrain de tester

    2-
    Sinon, est-tu certain que ton textBox est accessible dans tous les modes ?
    j'ai pas compris ce que vous entender pas tous les modes.

    3-
    je ne vois pas vraiment l'interet que tu trouves a assigner le text d'un textbox a une gridview qui est un tableau.
    Tu auras un tableau avec une colonne?
    il fallait que je précise que j'essaiyes d'ajouter des enregistrements a ma base de données sqlserver via un contrôle gridview, mais c'est pas évident
    ce qqu'il me reste a present c'est de récuperer la valeur saisi dans le textbox qui se trouve a l'interieur de la gridview.
    si vous voyer une autre alternative, merci de me le signaler

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Points : 30
    Points
    30
    Par défaut
    slt,
    je pense ke ton problem vient du mode
    les modes sont :
    - item --> lecture
    - edit --> Mise à jour
    - insert --> insertion
    exple en mode edit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If (monGridView.CurrentMode = monGridView.Edit) Then
     Dim sValeur As String = CType(monGridView.FindControl("textbox1"), TextBox).Text
     
    End If
    j'espère ke ça va te debloquer !!!

  6. #6
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut
    j'ai eu comme erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'CurrentMode' n'est pas membre de 'System.web.UI.Webcpntrols.GridView'
    je précise que je travail avec aucun mode, j'ai juste ajouter des textboxs dans le 'itemtemplate' de mon gridview:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       <ItemTemplate>
       <asp:TextBox runat="server" ID="textbox1">
       </asp:TextBox>
        </ItemTemplate>
    merci pour votre patience

  7. #7
    Membre habitué

    Inscrit en
    Avril 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Points : 156
    Points
    156
    Par défaut Re.: recuperer la valeur d'un textbox dans un gridview
    Ton gridview est lié à un datasource? Si oui, tu as effectué un databind de ta texbox?

  8. #8
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut
    je vais vous donner un exemple qui illustre ce que j'ai fait.
    supposant qu'on veut ajouter les détails d'un devis (produits du devis), en ajoutant 5 produits a la fois via 5 ligne du gridview
    voici ce que j'ai fait:

    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
     
        Protected Sub gv_det_devis_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs)
      if e.CommandName="InsertLines" then
                    For Each oDataRow As GridViewRow In gv_det_devis.Rows
                        Dim sQte As String = CType(gv_det_devis.FindControl("tb_qte"), TextBox).Text
                        Dim sPU As String = CType(gv_det_devis.FindControl("tb_pu"), TextBox).Text
                        Valider_ajout(sQte, sPU)
                    Next
                 end if
        End Sub
     
        Private Sub BindData()
            Dim iDummy(4) As Int32   ' ça va nous donner 5 ligne
            gv_det_devis.DataSource = iDummy
            gv_det_devis.DataBind()
        End Sub
     
        Protected Sub Valider_ajout(ByVal qte As String, ByVal pu As String)
     
            req_cmd = "INSERT INTO Devis(id_pdt,id_devis,id_clt,qte_devis,prix_devis)" & _
                    " VALUES ('PR0001','DE0001','CL0001'," & qte & "','" & pu & "')"
            cmd = New SqlCommand(req_cmd, con)
            cmd.ExecuteNonQuery()
     
            con.Close()
     
        End Sub
    et voici le code html :

    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
     
    <asp:GridView ID="gv_det_devis" runat="server" AutoGenerateColumns="False" BackColor="White"
            BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px" CellPadding="4" OnRowCommand="gv_det_devis_RowCommand"
            ShowFooter="True" Width="64%">
            <FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
            <Columns>
     
                <asp:TemplateField HeaderText="Qté">
                    <HeaderStyle Font-Size="Small" />
                    <ItemTemplate>
                        <asp:TextBox ID="tb_qte" runat="server">
                                            </asp:TextBox>
                    </ItemTemplate>
     
                </asp:TemplateField>
                <asp:TemplateField HeaderText="P.U">
                    <HeaderStyle Font-Size="Small" />
                    <ItemTemplate>
                        <asp:TextBox ID="tb_pu" runat="server">
                                            </asp:TextBox>
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:Button ID="bt_ajouter" runat="server" CommandName="InsertLines" Text="Ajouter" />
                    </FooterTemplate>
                </asp:TemplateField>
     
     
            </Columns>
            <RowStyle BackColor="White" ForeColor="#003399" />
            <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
            <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
            <HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
        </asp:GridView>
    je me suis baser sur plusieurs exemples d'internet, mais je croix que j'ai du mélanger les choses

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Salut,

    moi j'utilise des datalist, je ne sais pas si cela se gere de la même manière mais je peux toujours te dire comment je fais.

    Dans un datalist, tu as des items, c'est à dire les lignes. Chaques ligne contient des controls, qui peuvent eux même contenir des controls.
    Par exemple un datalist qui contient un asp:table qui contient un asp:tableRow qui contient un asp:tableCell, qui contient des label...

    Un exemple dans une fontion vb.net pour parcourir un datalist:

    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
     
    private sub exemple(sender as object, e as eventargs)
    dim item as datalistItem
    dim ctrl,ctrl2 as control
     
    for each item in ctype(sender.findcontrol("MaDatalist"),datalist).items
          for each ctrl in item.controls
                 for each ctrl2 in ctrl.controls
                      etc.......
                      if ctrl2.id="MaTextBox" then
                           ton action
                     end
                next
         next
    next
    end sub
    Je ne sais pas si ça va t'aider ni si c'est la meilleur solution, ne sait on jamais?
    Bon courage

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/02/2010, 12h39
  2. Réponses: 4
    Dernier message: 02/01/2010, 13h39
  3. Recuperer une valeur d'une ADOTable dans un Edit
    Par yannba dans le forum Bases de données
    Réponses: 6
    Dernier message: 26/01/2006, 16h28
  4. recuperer la valeur de 2 champs dans un 3eme champs
    Par nouar dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/01/2006, 12h14
  5. recuperer la valeur d'un tablau, dans un input
    Par argynici dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/11/2004, 17h54

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