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 :

Datarepeater données issues d'un xml


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Par défaut Datarepeater données issues d'un xml
    Bonsoir à tous,
    j'ai un soucis. Je ne vois pas comment puis-je charger les données du xml vers le datarepeater.
    Ci dessous mon code :
    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
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim dsxml As New DataSet()
            dsxml.ReadXml("test_data.xml")
            ' Bind DataSet to DataGridview
            DataGridView1.DataMember = "entry"
            DataGridView1.DataSource = dsxml
     
            Dim bs As New BindingSource
            datarepeater1.DataSource = bs
            bs.DataSource = dsxml
     
            datarepeater1.DataMember = "entry"
     
            MsgBox("apres fin...")
            'dtr.DataSource = dsxml
        End Sub
     
        Private Sub DataRepeater1_DrawItem(ByVal sender As Object, _
                                           ByVal e As Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs) _
                                       Handles datarepeater1.DrawItem
     
            MsgBox("dans event...")
            e.DataRepeaterItem.Controls("textbox1").Text = "???"
            e.DataRepeaterItem.Controls("textbox2").Text = "toto 222"
            e.DataRepeaterItem.Controls("textbox3").Text = "toto 333"
        End Sub
    et le fichier xml de test :
    Code XML : 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
    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <tweets>
        <entry id="11">
          <author>@patrick</author>
          <text>text du tweet de @patrick</text>
        </entry>
        <entry id="12">
          <author>@moi</author>
          <text>text du tweet de @moi</text>
        </entry>
        <entry id="13">
          <author>@le13</author>
          <text>text du tweet de @le13</text>
        </entry>
        <entry id="14">
          <author>@le14</author>
          <text>text du tweet de @le14</text>
        </entry>
      </tweets>
    </root>

    je en sais pas comment charger les données dans le repeater un peu à la façon d'un For each...Next ou encore avec une commande LINQ qui serait d'ailleurs le mieux.
    Merci de vos lumières
    Patrick

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Par défaut
    Bonjour à tous,
    je pense avoir une solution... c pas encore mais au moins, j'affiche des choses dans mon datarepeater1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Imports System
    Imports System.Data
    Imports Microsoft.VisualBasic.PowerPacks
    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
    Dim dsxml As New DataSet()
            dsxml.ReadXml("test_data.xml")
            ' Bind DataSet to DataGridview
            DataGridView1.DataMember = "entry"
            DataGridView1.DataSource = dsxml
     
            Dim bs As New BindingSource
            DataRepeater1.DataSource = bs
            bs.DataSource = dsxml
     
            DataRepeater1.DataSource = dsxml
     
            id.DataBindings.Add("Text", "", "id")
            author.DataBindings.Add("Text", "", "author")
            message.DataBindings.Add("Text", "", "message")
     
            DataRepeater1.DataMember = "entry"
    et le fichier xml :
    Code XML : 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
    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <tweets>
        <entry id="111">
          <author>@patrick</author>
          <message>text du tweet de @patrick</message>
        </entry>
        <entry id="2222">
          <author>@moi</author>
          <message>text du tweet de @moi</message>
        </entry>
        <entry id="333">
          <author>@le13</author>
          <message>text du tweet de @le13</message>
        </entry>
        <entry id="144">
          <author>@le14</author>
          <message>text du tweet de @le14</message>
        </entry>
      </tweets>
    </root>
    voila avec ce code c'est le départ vers qlq chose de plus intéressant.
    Si d'autres on des idées, ne soyez pas timide
    Merci
    Patrick
    PS : pour tester cet exemple créer un Form avec 1 datagridview et un datarepeater (avec 3 textbox), coller le code dans un bouton...

  3. #3
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Tu n'as plus besoin de ton DataRepeater avec ton deuxième code, cela suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                Dim chem As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\testxml.xml"
                Dim ds As New DataSet
                ds.ReadXml(chem)
                DataGridView1.DataSource = ds.Tables("entry")
    Simple et efficace...


    Si tu veux faire du Linq, il y a Linq To XML qui pourrait t’intéresser.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Par défaut
    Bonjour Sankasssss

    En effet c'est assez simple, et LINQ nous simplifie aussi la vie.
    Mais je souhaite utiliser le DataRepeater pour des questions d'affichage des données. Il semble que le dataRepeater soit plus flexible que DataGridView puisque je souhaite agencer le design du contenu (image, auteur, message...) dans une "boite" plutôt que sur une ligne et des colonnes.
    Ceci dit, si tu as une autre solution plus simple, je suis preneur.
    Merci encore.

    Patrick

  5. #5
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Je ne connaissais pas ce composant qui fait partie du PowerPack mais il a l'air intéressant. [EDIT] Je ne serais donc pas t'aider à son sujet. Voir Edit plus bas.[/EDIT]

    J'arrive au même résultat en faisant des UserControl que je stocke dans une liste.
    Ici deux exemples que j'ai réalisé en WPF :
    Nom : e23030c0-119c-11e3-ae56-22000aa5108a-large.png
Affichages : 241
Taille : 167,4 Ko
    Nom : 294c4e7c-0a80-11e3-a4c1-22000a91e9a7-large.png
Affichages : 315
Taille : 404,1 Ko

    J'avais commencé en WindowsForm mais j'avais constaté des ralentissements lors du scrolling, j'avais donc décidé de passer en WPF. Peut-être que le datarepeater règle le problème de ralentissement que j'avais.

    EDIT :

    J'ai rapidement testé et ce code fonctionne :
    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
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim dsxml As New DataSet()
            dsxml.ReadXml(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\testXML.xml")
            ' Bind DataSet to DataGridview
            DataGridView1.DataMember = "entry"
            DataGridView1.DataSource = dsxml
     
            Dim bs As New BindingSource
            DataRepeater1.DataSource = bs
            bs.DataSource = dsxml
     
            TextBox1.DataBindings.Add("Text", "", "author")
            TextBox2.DataBindings.Add("Text", "", "text")
            TextBox3.DataBindings.Add("Text", "", "id")
     
            DataRepeater1.DataMember = "entry"
     
            Debug.WriteLine("apres fin...")
            'dtr.DataSource = dsxml
        End Sub

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/07/2009, 15h32
  2. [XML] stocker des données dans un fichier XML
    Par R3iTt0R dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/05/2005, 16h51
  3. renvoyer des données sous forme de XML hiérarchique
    Par DiGueDao dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/01/2005, 18h06
  4. Réponses: 3
    Dernier message: 13/12/2004, 13h54
  5. Validation de données à partir d'un XML Schema
    Par leup dans le forum Valider
    Réponses: 2
    Dernier message: 10/06/2004, 08h30

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