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 :

Stockage des données dans un Gridview ?


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 16
    Par défaut Stockage des données dans un Gridview ?
    Bonjour

    J'ai une page avec à gauche une listbox contenant 4 items bien définis.

    Je voudrais que l'utilisateur puisse, en sélectionnant un des 4 items de la liste et en cliquant sur un bouton, ajouter l'item sélectionné dans un Gridview sur la partie droite de la page. Il pourra également supprimer un élément de la Gridview, ceci étant bien géré par celle-ci.

    Il ajoute tous les éléments qu'il souhaite puis il peut enregistrer le contenu du Gridview (les éléments sélectionnés) en base de données.

    Voilà, je n'arrive pas à ajouter l'élement sélectionné parce que la Gridview ne possède pas de méthode pour insérer des lignes. J'en suis là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Protected Sub ImageButtonAjouterTravaux_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButtonAjouterTravaux.Click
            Dim tacheaajouter As String
            tacheaajouter = ListBoxTravaux.SelectedValue.ToString
    End Sub
    Je voudrais ajouter une ligne du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GridViewTachesSelectionnees.Rows.Add(tacheaajouter)
    mais c'est impossible. J'ai lu qu'il fallait binder la Gridview avec une DataTable mais je ne trouve pas les composants dans Visual Web Developer et il me semble que ce sont des éléments de WindowsForms (je fais une page WEB en asp...)

    Merci de votre aide !

  2. #2
    Membre chevronné
    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
    Par défaut
    effectivement il faut que tu ajoutes une ligne a une datatable. La datatable est bien disponible en ASP.NET penses a inclure System.Data.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 16
    Par défaut
    J'ai ajouté System.Data mais rien ne s'ajoute dans la barre d'outils !



    => Il n'y a pas de DataTable :



    Comment est-ce que je peux faire ?...

  4. #4
    Membre chevronné
    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
    Par défaut
    la datatable c'est un objet pas un control, il faut que tu l'instancie ds ton code behind

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 16
    Par défaut
    Merci jjameau ! Ca fonctionne presque ! Voici ce que j'ai ajouté dans la fonction déclenchée au clic sur mon bouton :

    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
            Dim tacheaajouter As String
            tacheaajouter = ListBoxTravaux.SelectedValue.ToString
     
            ' Création de la DataTable des tâches à réaliser
            Dim dt As New DataTable
            Dim co As New DataColumn
            co.ColumnName = "tache"
            dt.Columns.Add(co)
     
            ' Ajout d'une ligne dans la DataTable
            Dim ro As DataRow = dt.NewRow()
            ro("tache") = tacheaajouter
            dt.Rows.Add(ro)
            GridViewTachesSelectionnees.DataSource = dt
            GridViewTachesSelectionnees.DataBind()
    Ca fonctionne ! Problème : à chaque sélection d'un nouvel élément (clic sur mon bouton), je créé un nouveau DataTable et donc l'ancien est effacé, je ne peux pas ajouter une deuxième ligne...

    J'ai essayé de déclarer en haut de ma page :

    et de déplacer le bloc Création de la DataTable des tâches à réaliser dans le Page_Load. Mais là ça ne marche plus : j'ai une erreur à la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim ro As DataRow = dt.NewRow()
    La référence d'objet n'est pas définie à une instance d'un objet.
    Comment est-ce que je peux faire pour conserver mon DataTable créé au chargement de la page une fois pour toutes ?

  6. #6
    Membre chevronné
    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
    Par défaut
    attention en asp.net les objets perdent leur état lors d'un postback, du coup il faut les conserver soit dans le viewstate si ils ne sont pas trop gros soit en session ....

    donc en gros quand tu rajoutes un élément a ta datatable tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Viewstate("mavariable") = madatatable;
    et dans ton page load

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if page.PostBack
    Me.maDataTable = Viewstate("mavariable")
     
    ....

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

Discussions similaires

  1. modification des données dans un gridview
    Par marie-anne dans le forum VB.NET
    Réponses: 6
    Dernier message: 08/11/2010, 15h45
  2. Configurer l'affichage des données dans un gridview
    Par Nuwanda dans le forum ASP.NET
    Réponses: 0
    Dernier message: 18/05/2009, 17h13
  3. Accès et stockage des données dans une appli
    Par aristeas dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 18/01/2009, 21h55
  4. [SQL2005]Stockage des données dans un CMS
    Par adrien.nicolet dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/03/2007, 02h02

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