Overblog
Suivre ce blog Administration + Créer mon blog

Bind de données XML dans une ListTable asp.net

16 Mai 2011 , Rédigé par Hugues MEUNIER Publié dans #.NET

Il est souvent utile de construire une interface asp.net dynamique fonction de données XML (ici les données sont récupérées dans une colonne de type xml depuis SQL Server). Ceci permet d'adapter l'IHM en fonction du contenu XML variable.

L'exemple ci-dessous permet d'afficher et de modifier les paramètres msdeploy (Web Deployment Tool). Ces données sont au format suivant:

<parameters>

<setParameter name="IIS Web Application Name" value="WS_TEST" />

<setParameter name="UrlWS" value="http://Serveur/chemin" />

</parameters>

  

Le but est d'afficher une ListTable contenant pour chaque ligne un couple Label, TextBox.

  

Première étape : la page aspx

<asp:DataList ID="DataList1" runat

="server">

<ItemTemplate

>

<tr

>

<td

>

<asp:Label ID="Label1" runat="server" Width="300" style="font-weight: bold; font-size:small; color: Navy" Text='<%#XPath("@name") %>'></asp:Label

>

</td

>

<td

>

<asp:TextBox ID="TextBox1" runat="server" Width="600" Text='<%#XPath("@value") %>'></asp:TextBox

>

</td

>

</ItemTemplate

>

 

</asp:DataList>

 

 

 

// Création du document XML  

 

 

 

XmlDocument xmldoc = new XmlDocument();

xmldoc.CreateXmlDeclaration("1.0", "ISO-8859-1", null);

//Lecture des données xml

xmldoc.LoadXml(item2["ConfigXml"].Text.ToString());

 //Sélection dans l'arbre xml du noeud à afficher

XmlNodeList nodes = xmldoc.SelectNodes("parameters/setParameter"

);
 //Bind des données sur la datalist asp.net

 

DataList1.DataSource = nodes;

DataList1.DataBind();

 

 

Lire la suite