从XmlDataSource填充DropDownList

我想使用一个简单的xml文件填充我的DropDownList:

  foo bar baz  

我的XPath是

 /Databases/Database 

我的下拉列表呈现为:

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

我该如何提取文字?

谢谢

我无法从脑海中回想起它,但我认为XmlDataSource中存在一个错误,它阻止您绑定到xml节点的值。 它仅适用于属性。 如果我错了,请纠正我。 您需要对XML文件进行一些修改:

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

请注意,我添加了name属性,而不是直接使用节点的值。

如果您无法修改原始XML文件的结构,则可以使用TransformFile属性对其应用XSLT转换,如本文所述。

我今天遇到了同样的问题。 我的解决方案

这是我的xml:

    bulbassaur    chamander     squirtle    

我将DataTextField =“itemname”放在DropDownList服务器控件上。 例如:

  

它没有问题。 可能不是最好的解决方案,但至少比System.Web.UI.WebControls.XmlDataSourceNodeDescriptor更好。

这是一种方法 – 您可以在LINQ查询中投影ListItems数组:

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