Gérer du xml à travers un datagrid

Résolu
Januka Messages postés 10 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 5 avril 2006 - 9 juil. 2004 à 11:41
Januka Messages postés 10 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 5 avril 2006 - 30 juil. 2004 à 16:26
Bonjour,
j'ai un pb avec un fichier xml que j'aimerais gérer au travers d'une interface, au lieu d'éditer le fichier et le compléter dans un fichier texte.

Le pb que j'ai c'est que mon fichier xml ets assez important et comporte des attributs qui différent selon les éléments. Au début, je me suis dit que j'allais afficher tous les attributs de chaque élément dans un datagrid, mais là c'est pas possible parce que j'ai bcp d'attributs différents..
Alors, je lie simplement un datagrid au dataset, mais je me retrouve avec la liste de tous les éléments, avec le signe + pour les développer, et bien sur quand je les développe, je me retrouve avec toute une liste d'attributs, mais ceux qui ne se trouvent pas dans l'élément concerné. Ca fait vraiment pas trés propre. Si quelqu'un a déja rencontré ce genre de pb, ou si vs avez une petite idée, merci par avance de toute suggestion.

4 réponses

taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
28 juil. 2004 à 08:58
J'ai relu ton message,
Si tu as des + dans ta datagrid, c'est que ton dataset est divisé en plusieurs datatables qui sont remplis avec ton xml.
Sauf dans le cas ou tu n'as pas défini de datamember à ta datagrid, la c normal.

Explication : un dataset est un objet qui contient une ou plusieurs tables qui contiennent les données de ton xml.

Tu lies ta datagrid à ton dataset. C tres bien, mais la datagrid ne sait pas quelles datatables affichées donc, elle affiche des + pour donner le choix à l'utilisateur.

Il faut dire quelle datatable tu lie à la datagrid pour supprimer les plus( sauf dans le cas de liaison entre les élémenents, mais la , ca devient compliquer à expliquer).

Bref, une fois que tu connais le nom des tables qui sont contenues dans ton dataset, tu peux personnaliser ta datagrid pour ln'afficher que les colonnes que tu veux.

Exemple de code :
le using qu'il doit falloir mettre est system.data
//déclare un style de grille
DataGridTableStyle ts1 = new DataGridTableStyle();
//quelle table personnaliser l'affichage
ts1.MappingName = Mydataset.MyTable.toString();

//donnée d'affichage de la grille
ts1.HeaderBackColor=SystemColors.ControlLightLight;
// Add 2 cols with textbox column style
DataGridTextBoxColumn TextCol = new DataGridTextBoxColumn();
//Indique le nom e la colonne à personnaliser
TextCol.MappingName = Mydataset.myTable.PremierColonne.toString();
TextCol.HeaderText = "";
TextCol.Width = 25;
TextCol.NullText ="";
ts1.GridColumnStyles.Add(TextCol);

//J'ajoute le style à ma datagrid
dataGrid1.TableStyles.Add(ts1);

L'ordre dans lequel tu vas déclarer les personnalisation de tes colonnes comptes car c l'ordre d'affichage dans la grille

apres je ne connais pas la structure de ton xml, donc, je ne peux pas t'en dire plus , bon courage
3
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
13 juil. 2004 à 11:37
Pourquoi ne pas lier ta datagrid a une seule datatable

Est ce que que le schéma de ton dataset est créé déjà. Tu le créé , tu charges ton doc xml et tu affiches ce que tu veux.

Tu peux personnalisé ton datagrid aussi pour n'afficher que les colonne ou les databble que tu souhaites ( datagridstyle)

bref ,n beaucoup d'options, mais tu sera peut etre amener à modifier la structure de ton doc xml
0
Januka Messages postés 10 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 5 avril 2006
27 juil. 2004 à 15:57
Merci,
je ne comprends pas ce que tu veux dire par le dataset crée ? En fait j'ai crée un dataset dans lequel j'ai chargé le fichier xml : myDataSet.load(ficxml). Ensuite j'ai attaché un datagrid pour pourvoir modofier le nom des colonnes, mieux organiser la table..
Tu as raison, je crois qu'effectivement, je vais être amené à modifier la structure du fichier, peut etre le diviser en 2 fichiers, parce qu'il y a trop d'attributs, ce qui me ferait trop de colonnes à afficher.
0
Januka Messages postés 10 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 5 avril 2006
30 juil. 2004 à 16:26
Merci bcp d'avoir passé de ton temps à me répondre. Je te revaudrai ça j'espère ;)
0
Rejoignez-nous