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

VB.NET Discussion :

1 datagridview + 2 set de donnees = comment switcher ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut 1 datagridview + 2 set de donnees = comment switcher ?
    Salut,

    Tout d abord je dois preciser que les notions de dataset, datatable, tableadapter et binding source, ne sont pas super claires pour moi donc sorry si ma question ne l ai pas trop nonplus.

    J ai une base de données, que j interroge avec un dataset et j affiche le resultat de la requete dans un datagridview. Ma requete me retourne un evenement de pluie par ligne avec une colonne pour la date de debut de pluie et une pour la fin. Jusque la j y arrive.

    Mon souci est que je voudrais mettre un bouton qui me permette de switcher entre cette affichage et un affichage ou les evenements qui se chevauchent sont regroupés. Exemple :

    ligne1 colonne 0 : 01/01/2000 10:00
    ligne1 colonne 1 : 01/01/2000 13:00

    ligne2 colonne 0 : 01/01/2000 12:00
    ligne2 colonne 1 : 01/01/2000 14:00
    --------------------------------------
    Je voudrais afficher qu une ligne avec :
    ligne1 colonne 0 : 01/01/2000 10:00
    ligne1 colonne 1 : 01/01/2000 14:00

    J ai ecris le code vb qui me permet de calculer depuis les donnees que j ai dans mon datagridview quels doivent etre les nouveaux evenements. Mais, j ai mis ces valeurs dans une List contenant des objet evenemets avec evenements.startdate et evenements.enddate.
    Mais je ne vois pas comment je peux faire afficher le contenu d une list dans un datagridview ....

    Qui plus est, je ne veux pas juste afficher ces valeurs, je veux que l utilisateur puisse a nouveaux switcher pour revoir les evenements originaux (donc je pense po pouvoir juste editer les colonnes du datagridview non ?

    Bref suis perdu ...

    Pour resumé ma question est peut etre : Est il possible d afficher le resultat d une List dans un datagridview ?

    Si vous avez compris la question chapeau bas !

    Merci

  2. #2
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    Ce serait plus simple à mon avis que tu essaies de faraire ça sur ta requete SQL...

    Tu devrais faire 2 requetes différentes, et et charges les données depuis l'une ou l'autre des requetes...

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Salut,

    merci de venir a mon secours ^^

    N etant pas un pro en SQL et ma requete de base demandant deja 3 bonnes minutes a me tomber le resultat je preferrerais eviter ca.

    Je me demandais si par exemple je ne pouvais pas soit :

    - Sauver mes deux series de donnees dans deux List differentes et editer les valeurs du datagridview en fonction de l option que veut afficher l utilisateur ? (Mais visiblement je n arrive pas a editer les colonnes de mon DVG. J ai beau mettre l option Readonly sur False, elle se remet sur true automatiquement ... )

    - Sauver les resultats de la List contenant les evenements qui ne chevauchent pas dans un deuxieme Dataset (Est ce possible ?) et choisir de remplir le DGV avec l un ou l autre des Dataset. (Mais dans ce cas, je n arrive pas a creer un Dataset qui n est pas lié a une base de donnee ... )

    Bref ... suis tjs bloqué ...

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Re,

    Je suis entrain de tester un truc qui pourrait ptet m aider ...

    Ne pas stoker dans une List, mais dans une BindingList :

    Ne pas utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private EventsList As New List(Of MyEvent)
    Mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private EventsList As New BindingList(Of MyEvent)

    Je me demande si a ce moment la, je ne peux pas switcher en tout simplement changeant le datasource du DGV. :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
            DataGridSingleCell.DataSource = EventsList
        End Sub
     
        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
            DataGridSingleCell.DataSource = RainfallDataSetSingleCell.GetCellEventsForDates
              End Sub
    Quand j utilise ce code, je n ai pas de message d erreur en retour, mais par contre, j ai des valeurs nulles quand j appuie sur le bouton 5. Par contre, si j appuie sur bouton 6 je retrouve les valeurs d origines. Donc ptet qu il me faut juste arriver a definir comment afficher les valeurs des objects contenu dans ma Bindinglist.... A suivre.

    Une idee quelqu un ?

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Re Re,

    Bon j avance ... Petit a petit mais j avance !

    J arrive a present a switcher grace aux BindingList, grce au code suivant :

    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
    If RbEventBased.Checked = True Then
                Dim DurationFieldIndex As Integer
                Dim StartFieldIndex As Integer
                Dim EndFieldIndex As Integer
                DurationFieldIndex = Me.GetFieldIndex(DataGridSingleCell, "Duration")
                StartFieldIndex = Me.GetFieldIndex(DataGridSingleCell, "Start")
                EndFieldIndex = Me.GetFieldIndex(DataGridSingleCell, "End")
     
                DataGridSingleCell.DataSource = EventsList
                DataGridSingleCell.Columns(4).Visible = False
                DataGridSingleCell.Columns(6).Visible = False
                DataGridSingleCell.Columns(7).Visible = False
                For iline As Integer = 0 To EventsList.Count - 1
                    DataGridSingleCell.Rows(iline).Cells(DurationFieldIndex).Value = EventsList.Item(iline).Duration
                    DataGridSingleCell.Rows(iline).Cells(StartFieldIndex).Value = EventsList.Item(iline).Startdate
                    DataGridSingleCell.Rows(iline).Cells(EndFieldIndex).Value = EventsList.Item(iline).Enddate
                Next
            Else
                DataGridSingleCell.Columns(4).Visible = True
                DataGridSingleCell.Columns(6).Visible = True
                DataGridSingleCell.Columns(7).Visible = True
     
                DataGridSingleCell.DataSource = RainfallDataSetSingleCell.GetCellEventsForDates
            End If
    J arrive donc a afficher les colonnes que je veux garder ainsi que les valeurs contenus dans ma Bindinglist.

    Mon hic a present est tout simplement qu avec ce code, l utilisateur ne peut pas reordonnees l affichage en cliquant sur l entete d une colonne. Quelqu un saurais faire ca ?

    Merci.

  6. #6
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    Regarde si tu n as pas une propriété SortExpression dans ta DataGridSingleCell.Columns(4)

    Regarde dans la MSDN les détails du GridView

Discussions similaires

  1. Réponses: 15
    Dernier message: 10/03/2014, 19h40
  2. [2.x] Comment switcher de role ?
    Par davidbouv dans le forum Symfony
    Réponses: 1
    Dernier message: 13/04/2012, 14h23
  3. Réponses: 3
    Dernier message: 29/08/2007, 14h27
  4. Set et donnée
    Par Glum147 dans le forum Hibernate
    Réponses: 3
    Dernier message: 03/11/2006, 15h21
  5. Comment inserer des donnee de type Large Object !!
    Par josoft dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/07/2003, 11h21

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