2015-11-18 1 views
0

Tout d'abord, j'obtenir l'ensemble de données avec de nombreuses tables de chaîne XML, par exemple le XML ressemble à ceci:WPF - Bind RadGridView DataSet avec de nombreuses tables

class xmldummy 
{  
    public static string XmlRequest = "<?xml version =\"1.0\"?>"+ 
               "<table>"+ 
                "<row>"+ 
                "<name>abc</name>"+ 
                "<type>def</type>"+ 
                "</row>"+ 
                ... 
                "<row5>"+ 
                "<name>123</name>"+ 
                "<type>456</type>"+ 
                "</row5>"+ 
               "<table>"; 
} 

puis dans j'ai ce code lire et le mettre dans le jeu de données:

string xmlRequest = xmldummy.XmlRequest; 

DataSet ds = new DataSet(); 
ds.ReadXml(XmlReader.Create(new StringReader(xmlReply))); 

Je croyais que j'ai va un ensemble de données avec une table qui se composent de 5 lignes, mais j'ai un ensemble de données avec 5 tables.

alors je veux lier avec RadGridView, je ne sais pas exactement comment je montre tout le jeu de données. Ce que je connais est de 1 table:

gridView.DataContext = ds.Tables[1].DefaultView; 

Y at-il moyen simple pour que je puisse montrer toutes les tables à mon GRIDVIEW? ou peut-être que je devrais combiner toutes les tables en 1?

Répondre

1

Le problème est que le fichier XML n'est pas correctement structuré. Pour créer une structure XML appropriée, assurez-vous que la liste des éléments ont les mêmes balises, par exemple:

<table> 
    <row> 
     <name>Entry 1</name> 
     <value>123</value> 
    </row> 
    <row> 
     <name>Entry 2</name> 
     <value>456</value> 
    </row> 
</table> 

Dans le XML que vous avez fourni, chaque row a différents tag: row1, row2, cela rend le DataSet analyse syntaxique invalide .

+0

désolé pour la réponse tardive, je l'ai essayé et cela fonctionne mais j'ai besoin de ces étiquettes différentes pour une raison quelconque et l'utilisera plus tard. – Mirza

+0

@Mirza Non, vous ne pouvez pas faire cela. Ce n'est pas comme ça que le XML fonctionne. Si vous souhaitez joindre une autre valeur à chaque ligne, mettre comme une autre balise, par exemple: ' Certains nom une certaine valeur' Ou si vous voulez être plus avancé, vous pouvez le joindre sur la Attribuez comme ceci ' ...', mais vous ne pouvez pas utiliser la méthode 'ReadXml' directement, mais plutôt fournir un analyseur XML supplémentaire de votre choix. – Gilang