Remplir DropDownList de XmlDataSource
J'aimerais remplir mes DropDownList à l'aide d'un simple fichier xml:
<?xml version="1.0" encoding="utf-8" ?>
<Databases>
<Database>foo</Database>
<Database>bar</Database>
<Database>baz</Database>
</Databases>
Mon XPath est
/Databases/Database
Ma liste déroulante est traduit comme:
<select name="databaseDropDownList" id="databaseDropDownList">
<option selected="selected" value="System.Web.UI.WebControls.XmlDataSourceNodeDescriptor">System.Web.UI.WebControls.XmlDataSourceNodeDescriptor</option>
<option value="System.Web.UI.WebControls.XmlDataSourceNodeDescriptor">System.Web.UI.WebControls.XmlDataSourceNodeDescriptor</option>
<option value="System.Web.UI.WebControls.XmlDataSourceNodeDescriptor">System.Web.UI.WebControls.XmlDataSourceNodeDescriptor</option>
</select>
Comment dois-je extraire le texte?
Grâce
InformationsquelleAutor Luca Martinetti | 2009-03-10
Vous devez vous connecter pour publier un commentaire.
Je ne peux pas le rappeler à partir du haut de ma tête, mais je pense qu'il y a eu un bug dans XmlDataSource qui vous empêche de se lier à des valeurs de nœuds xml. Il fonctionne avec des attributs seulement. Veuillez me corriger si je me suis tromper avec ce. Il y a une légère modification de la vous avez besoin pour faire de votre fichier XML:
Noter que j'ai ajouté le nom attribut au lieu d'utiliser la valeur du noeud directement.
Si vous ne pouvez pas modifier la structure de votre fichier XML d'origine, vous pouvez appliquer une transformation XSLT sur l'aide de la TransformFile propriété comme décrit dans cette post.
J'ai eu le même problème aujourd'hui. Ma solution:
C'est mon xml:
Et j'ai mis les propriétés de datatextfield="itemname" sur la DropDownList serveur de contrôle.
ex:
Ça fonctionne sans problèmes. Probablement pas la meilleure solution... mais au moins mieux que
System.Web.UI.WebControls.XmlDataSourceNodeDescriptor
.Ici est une façon de le faire - vous pouvez le projet d'un tableau de
ListItems
dans une requête LINQ: