2010-02-22 6 views
0

Dans une nouvelle classe que j'écris, je dois prendre le contenu d'un flux de données XML externe et le convertir en un tableau HTML via C# et .NET 2.0 (ne peut pas aller plus haut en raison des contraintes du serveur). Puisque nous réutilisons le code, je mets cette fonctionnalité dans une classe. Voici la classe Loader XML:Nouvelle aide pour convertir un fichier XML, Datarid en sortie HTML en utilisant C#, .NEt 2.0

using System; 
using System.Web; 
using System.Data; 
using System.Text; 
using System.Diagnostics; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 

namespace 
{ 
    public partial class XMLLoader 
    { 
     private String xmlpath = "\\xml\\data_test.xml"; 

    public String getXMLData() 
    { 
     DataSet dsXMLData = new DataSet("xml_data"); 
     string filePath = xmlpath; 
     dsXMLData.ReadXml(filePath); 
     Debug.WriteLine(dsXMLData.GetXml()); 

     DataGrid DataGrid1 = new DataGrid(); 
     DataGrid1.AllowPaging = true; 
     DataGrid1.DataSource = dsXMLData; 
     DataGrid1.DataMember = "xml_data"; 

     StringBuilder outStr = new StringBuilder(String.Empty); 
     outStr.Append(dsXMLData.GetXml()); 
     return outStr.ToString(); 
    } 
} 
} 

Là où je suis rester coincé est sortie le contenu de la grille de données à un tableau HTML en utilisant le outStr var que je vous écris simplement à la page APSX en utilisant <% Response.Write() %>. De toute façon je suis coincé et jusqu'à présent ne pas trouver ce que je veux afficher dans MSDN.

+0

OK, je vais utiliser pour tirer les résultats à la page et un code simplement derrière charger le XML. Fonctionne bien. Mais maintenant, pour une raison quelconque, lorsque je lie les colonnes à un noeud XML, les enregistrements sont bloqués et ne se répètent pas. – JFOX

Répondre

0

Vous devez appeler la méthode Databind() à votre datagrid et ajouter votre datagrid à vos contrôles de page.

EDIT:

Vous pouvez également utiliser la méthode Render(yourHTMLTextWriter) de votre DataGrid après la liaison

+0

Gregoire, merci. Si j'ai <% Response.Write (getHTMLTable()); %> dans ma page APSX et protected String getHTMLTable() { XMLLoader xl = new XMLLoader(); Renvoyer xl.loadXML(); } dans ma page .cs, comment puis-je obtenir le HTML à la page APSX via HTMLTextWriter? – JFOX

+0

@JFOX: essayez yourGrid.Render (Response.Output) – Gregoire

+0

Merci Gregoire, voir nouveau commentaire ci-dessus. – JFOX

Questions connexes