从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() );