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 :

parcourir gridview et insérer dans une base sql server


Sujet :

ASP.NET

  1. #21
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut RE
    merciiiiiiiiiiiiiiiiiii beaucoup, je serais trop reconnaissante
    maintenant le msgbox n'est pas vide et il affiche la valeur contenu dans la cellule

    désolée maintenant j'ai une autre question
    si j'ai une première colonne avec templatefield est un textbox d'ID = txtBox1 et une deuxième colonne avec templatefield est un textbox d'ID = txtBox2 et je veux calculer par exemple le total d'une colonne quelconque , alors comment je peux savoir l'ID du textbox qui est là dans ?
    plus clair, je vais faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim t As TextBox
            For Each ro In GridView1.Rows
                Dim t As TextBox
                t = CType(GridView1.Rows(0).Cells(0).FindControl("TxtBox"), TextBox)
     
            Next
    comment peut on modifier l'argument de FindControl selon la cellule de la ligne ?

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    tu fixes le nom de tes textbox en fonction de la colonne id="Textbox_col1", id="Textbox_col2" ... et du coup tu peux faire ton findControl facilement

  3. #23
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut RE
    càd je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim t As TextBox
            For Each ro In GridView1.Rows
                Dim t As TextBox
                t = CType(ro.Cells(k).FindControl("TxtBox_col"+k), TextBox)
     
      Next

  4. #24
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    oui ca devrait fonctionner

  5. #25
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut RE
    tu es vraiment formidable
    merci beaucoup pour tes efforts

  6. #26
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut
    Bonjour
    maintenant j'ai un autre problème avec gridview:
    je veux, au début, avoir une seule ligne, et à chaque fois que l'utilisateur remplit cette ligne et appuie sur la touche entrée, une autre ligne (vide) sera ajoutée à mon gridview ( je ne parle pas du footerrow car je l'utilise pour afficher le total de la colonne); j'i aprocédé comme suit: dans le page_load, j'ai fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Not (Page.IsPostBack) Then
                Dim R1 As DataRow
                R1 = tbl.NewRow
                tbl.Rows.Add(R1)  'tbl est le datatable
                GridView1.DataSource = tbl
                GridView1.DataBind()
     End If
    j'utilise un bouton pour l'ajout de la ligne tel que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    If Not (Page.IsPostBack) Then
    Dim r1 As DataRow
    r1 = tbl.NewRow
     tbl.Rows.Add(r1)
    tbl.AcceptChanges()
    GridView1.DataBind()
    end if
    mais le problème consiste en fait que lors du premier clique j'obtient la ligne mais au deuxième clique rien ne se passe ! et si j'ai fais le databind dans le page_load (comme tu m'as indiquée hier) aucune ligne est ajoutée !

    y-a-t-il une méthode pour insérer directement une ligne au gridview sans passer par le datatable surtout qu'on va saisir les données directement dans le grid sans utilser ce datatable?

  7. #27
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    oula !!


    dans ton page_load tu ne fais rien de plus que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If Not (Page.IsPostBack) Then
                GridView1.DataSource = tbl
                GridView1.DataBind() 
    End If
    dans ton click

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim r1 As DataRow
    r1 = tbl.NewRow
    tbl.Rows.Add(r1)
    GridView1.DataBind()

  8. #28
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut RE
    si je fais comme ça , le grid ne sera pas affiché du tout

  9. #29
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    tu as essayé ?

  10. #30
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut RE
    oui bien sûr

  11. #31
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut RE
    j'ai trouvé ça :

    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
    sub GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
     
        if (e.Row.RowType == DataControlRowType.DataRow)
     
            ChildTable table = e.Row.Parent as ChildTable;
     
            if (table != null)
     
               Dim row As New GridViewRow(-1, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Edit)
     
               Dim cell As New TableCell
               cell.ColumnSpan = GridView1.Columns.Count - 1
               'cell.Width = Unit.Percentage(100)
     
               cell.Controls.Add(new LiteralControl("New Row"))
     
               row.Cells.Add(cell)
     
               table.Rows.Add(row)
     
        end if 
    end if    
    end sub
    j'essaye de l'utiliser mais dans le code de clique sur le bouton et en utilisant mon datatable au lieu du TableCell , mais on m'affiche :
    Le tableau en entrée est plus long que le nombre de colonnes de cette table

  12. #32
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    vérifies pourquoi il ne t'affiche plus le gridview avec la méthode que je t'ai donné. Est ce que parce que la datable est vide ?

    Sinon dans ton onclick tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim r1 As DataRow
    r1 = tbl.NewRow
    tbl.Rows.Add(r1)
     
    Viewstate["t"] = tbl
    et dans ton page load
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    If Not (Page.IsPostBack) Then
                GridView1.DataSource = tbl
                GridView1.DataBind() 
    else
                GridView1.DataSource = ctype(Viewstate["t"],datable)
                GridView1.DataBind() 
     
    End If

  13. #33
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut RE
    la datatable est vide parce que l'utilisateur va travailler directement avec le gridview ( remplit les textbox) c'est pourquoi je t'interroge est ce qu'on peut manipuler directement avec gridview ?
    si dans le page_load je ne mets pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim R1 As DataRow
     R1 = tbl.NewRow
     tbl.Rows.Add(R1)
     GridView1.DataSource = tbl
     GridView1.DataBind()
    alors le gridview ne s'affiche pas, et si j'ajoute les lignes de code ci-dessus avec celles que tu m'as proposées, alors j'obtiens le grid mais au clique il disparaît !!

  14. #34
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    en gros il FAUT que tu travailles avec ta datable, le gridview doit juste afficher ce que contient ta datable. donc :

    - Il faut conserver l'état de ta datable lors des postback (avec le viewstate)
    - Il faut que tu sauvegardes tes textbox dans ta datatable lors du click
    - il faut que lors du postback tu mettes les valeurs de ta datable dans ton gridview (textbox) grace au rowdatabound

  15. #35
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut RE
    je dois permettre à l'utilisateur de saisir dans les cellules du grid, puis à chaque appui lui permettre d'avoir une ligne vide ( mais qu'on peut les editer ) !

  16. #36
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut RE
    Citation Envoyé par jjameau Voir le message
    en gros il FAUT que tu travailles avec ta datable, le gridview doit juste afficher ce que contient ta datable. donc :

    - Il faut conserver l'état de ta datable lors des postback (avec le viewstate)
    - Il faut que tu sauvegardes tes textbox dans ta datatable lors du click
    - il faut que lors du postback tu mettes les valeurs de ta datable dans ton gridview (textbox) grace au rowdatabound
    Bonjour
    dans le onclick , j'ai ajouté:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim j As Integer
            Dim i As Integer
            For i = 1 To GridView1.Rows.Count - 1
                For j = 1 To GridView1.Columns.Count - 1
                    tbl.Rows(i).Item(j) = CType(GridView1.Rows(i).Cells(j).FindControl("TxtBox_col" + j), TextBox).Text
                Next
            Next
    
    dim r1 as datarow
    r1=tbl.newRow
    tbl.rows.add(r1)
    et j'essaye de suivre tes conseils mais j'ai pas compris le troisième point ! Peux tu m'expliquer S.T.P car j'ai passé de chercher une solution depuis plusieurs jours main en vain !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [SQL-Server] Images dans une base SQL Server
    Par matrouba dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 20/03/2008, 10h34
  2. stockage word en xml dans une base sql server 2005
    Par morados dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/10/2006, 10h47
  3. Réponses: 2
    Dernier message: 15/07/2006, 12h29
  4. [ODBC] [SQL-Server] affichage d'une image stockée dans une base sql server
    Par ahlemag dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/06/2006, 15h45
  5. Réponses: 5
    Dernier message: 10/05/2006, 15h47

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