Remplir DropDownList à partir de XmlDataSource

Je voudrais remplir mon DropDownList en utilisant un simple fichier XML:

  foo bar baz  

Mon XPath est

 /Databases/Database 

Ma liste déroulante est rendue comme suit:

  System.Web.UI.WebControls.XmlDataSourceNodeDescriptor System.Web.UI.WebControls.XmlDataSourceNodeDescriptor System.Web.UI.WebControls.XmlDataSourceNodeDescriptor  

Comment dois-je extraire le texte?

Merci

Je ne m’en souviens pas du tout, mais je pense qu’il y avait un bogue dans XmlDataSource qui vous empêchait de vous lier aux valeurs des nœuds xml. Cela fonctionne uniquement avec les atsortingbuts. S’il vous plaît, corrigez-moi si je me trompe. Vous devez apporter une légère modification à votre fichier XML:

 <%@ Page Language="C#" %>     Untitled Page   

Notez que j’ai ajouté l’atsortingbut name au lieu d’utiliser directement la valeur du nœud.

Si vous ne pouvez pas modifier la structure de votre fichier XML d’origine, vous pouvez lui appliquer une transformation XSLT à l’aide de la propriété TransformFile , comme décrit dans cet article .

J’ai eu le même problème aujourd’hui. Ma solution:

C’est mon xml:

    bulbassaur    chamander     squirtle    

Et je mets DataTextField = “itemname” sur le contrôle serveur DropDownList. ex:

  

Cela fonctionne sans problèmes. Probablement pas la meilleure solution, mais au moins meilleure que System.Web.UI.WebControls.XmlDataSourceNodeDescriptor .

Voici une façon de le faire – vous pouvez projeter un tableau de ListItems dans une requête LINQ:

 XDocument doc = XDocument.Parse(@" foo bar baz "); YourList.Items.AddRange( (from XElement el in doc.Descendants("Database") select new ListItem(el.Value)).ToArray() );