[C#] gerer une liste à partir d'un fichier xml [Résolu]

iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 11 févr. 2006 à 17:42 - Dernière réponse : iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention
- 1 mars 2006 à 14:12
bonjour,
dans une de mes appliquations j'aimerais gerer une "liste verte" comme sur cette exemple : http://img97.imageshack.us/img97/5669/image19aw.jpg

j'aimerais savoir quelle type de liste implanter pour que je puisse afficher des informations dedans à partir d'un fichier xml et que je puisse les selectionner pour les suprimer. Dois je mettre un datagrid ??
Qu'est ce qu'un datagrid ?

merci
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
bernie666 427 Messages postés mercredi 1 octobre 2003Date d'inscription 29 janvier 2008 Dernière intervention - 12 févr. 2006 à 01:48
3
Merci
Other solution => utilisation de la classe XML + listeView tu est plus libres :)

using System.Xml

XmlTextReader xmlr = new XmlTextReader("monFichier.Xml");

'on parcour le fichier xml

while(xmlr.Read){
if (xmlr.NodeType = XmlNodeType.Element){
if(xmlr.Name = "contact"){
maListView.item.add(xmlr.ReadElementString);
}
}
}







xmlr.Close()
'on referme le fichier xml

Merci bernie666 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de bernie666
Meilleure réponse
bernie666 427 Messages postés mercredi 1 octobre 2003Date d'inscription 29 janvier 2008 Dernière intervention - 12 févr. 2006 à 12:34
3
Merci
euh il faut que tu ailles dans les propriétés de ta listesView et que tu changes cette options qui est par défaut à large icones.

Ensuite tu reprends le code du haut (corrigé ) et avant de passer dans ta boucle while tu met

maLstView.Clear(); //le fait de clear permet de réinitialisé la liste a chaque fois (utils si tu fait une fonction d'affichage pour pas rajouter à la suite de a listeView

maLstView.Columns.Add("Contact",100,HorizontalAlignment.Left);


/*si tu veux ajouter une colonne dans ta liste view (si par exemple dans ton fichier xml tu a l'age de tes contacts et que tu veux l'ajouter à la liste view).

maLstView.Columns.Add("Age",20,HorizontalAlignment.Left);

Ensuite ta boucle reste inchangée (sauf donc si tu veux afficher l'age en plus ...) il faut dans ce cas que tu parcours par la meme méthode ton fichier xml et pour afficher dans la listeView en mode detaille l'age :
listView1.Items[indiceDeLaLstView].SubItems.Add("monItem"); */


Voila

Bon dev et bonne journée

Merci bernie666 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de bernie666
Meilleure réponse
iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 1 mars 2006 à 14:12
3
Merci
j'ai trouvé comment faire il ne me reste plus qu'a savoir comment suprimer une seul ligne dans un fichier xml

Merci iow4 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de iow4
bernie666 427 Messages postés mercredi 1 octobre 2003Date d'inscription 29 janvier 2008 Dernière intervention - 11 févr. 2006 à 18:03
0
Merci
le datagrid est un control tres pratique qui te permet d'afficher des données
ce que tu peux faire si ton fichier xml est bien formater

imports system.data;

DataSet monDs = new DataSet();

monDs.readXml("monFichier.xml");

monDataGrid.datasource = monDs;

et voila :)
Commenter la réponse de bernie666
iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 11 févr. 2006 à 23:19
0
Merci
Donc un datagrid conviendrait ??
Il n'existe pas de tuto pour bien formater un fichier xml ?

merci
Commenter la réponse de iow4
iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 12 févr. 2006 à 00:06
0
Merci
j'ai testé le couple datagrid + xml sa marche bien
mais j'aimerais simplement avoir une liste toute simple contenant les adresses stocké dans mon fichier xml et non pas un truc aussi compliqué : http://img99.imageshack.us/img99/5338/image10dv.jpg

voici mon fichier xml :


<?xml version="1.0" standalone="yes" ?>


<NewDataSet>



<contact>thomas@
</contact>


</NewDataSet>
Commenter la réponse de iow4
iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 12 févr. 2006 à 11:21
0
Merci
merci pour le code je l'ai corrigé et il marche bien il y a juste un petit truc : les donnees du fichier xml ne prenne pas toute la longueur de la listeview et il y a 2 adresse par ligne
comment faire pour qu'il y'en ai qu'une
Commenter la réponse de iow4
iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 12 févr. 2006 à 15:19
0
Merci
Sa marche super !!!!
merci
Bonne journée
Commenter la réponse de iow4
iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 12 févr. 2006 à 16:40
0
Merci
une autre question comment je pourais faire pour que quand on clic sur le bouton suprimer sa suprime la ligne dans le fichier xml ?
comment lié les elements affichés dans la liste et le bouton ?
Commenter la réponse de iow4
bernie666 427 Messages postés mercredi 1 octobre 2003Date d'inscription 29 janvier 2008 Dernière intervention - 12 févr. 2006 à 20:21
0
Merci
pour pouvoir supprimer dans un fichier xml je ne connais qu'une méthode, regénérer et réécrire le fichier xml.

2 solutions :

La premiere ("la plus chiante a mon gout") :

//tu supprimes et creer un fichier xml grace a la Class File puis

XmlDocument docXml
= New XmlDocument();


//tu load ton fichier xml (qui est vierge)

docXml.Load(Application.StartupPath & "\touteLesSources.xml");



' Créer un nouveau noeud

contact = docXml.CreateElement("CONTACTS");



' Créer un nouvel element contact


element = docXml.CreateElement("contact");


element.InnerText ="nom du contact";



' tu ratache l'element au noed pere


contact.AppendChild(element)


docXml.DocumentElement.AppendChild(contact)



'sauvegarde


docXml.Save("monFichierXml");

2 eme solution (je prefere) : Utilisation du dataSet

pour cela je t'invite à consulter l'une de mes sources qui utilise justement les dataSet et les fichiers Xml sachant que toute la partie xml est gerée automatiquement

http://www.csharpfr.com/codes/BRIKABRAK-LA-BOITE-A-OUTILS-POUR-LE-DEVELOPPEUR-D-APPLICATION/35875.aspx
Commenter la réponse de bernie666
iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 13 févr. 2006 à 16:56
0
Merci
mais comment lier les elements de la liste generé par le fichier xml avec le bouton suprimer ? pour que quand je selectionne une ligne et que j'appuie sur le bouton suprimer sa suprime cette liste.

Si vous avez besoin d'explications suplémentaires demandé moi
merci
Commenter la réponse de iow4
iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 27 févr. 2006 à 12:55
0
Merci
je pensais creer une fonction qui serait appellé lorsque l'on clique sur une ligne qui creerais un bouton
avez vous de idees ?

merci
Commenter la réponse de iow4

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.