我正在尝试将XML数据绑定到Dropdownlist
XElement xDoc = XElement.Parse(QContent.OuterXml);
这是我的xDoc包含的内容
<root xmlns="">
<item value="-1" text="Select" />
<item value="1" text="$30,000" />
<item value="2" text="$50,000" />
</root>
查询将数据提取到Listitem中:
var query = from xEle in xDoc.Descendants("root")
select new ListItem(xEle.Attribute("value").Value , xEle.Attribute("text").Value);
这没有结果。请指教。
提前致谢
BB
答案 0 :(得分:2)
您可以将LINQ查询更改为以下内容,该查询将返回root
下的所有节点,并返回包含您尝试绑定的值/文本对的新项目。
var query = from xEle in xDoc.Descendants()
select new {value = xEle.Attribute("value").Value , text = xEle.Attribute("text").Value};
然后按如下方式设置绑定,包括将查询折叠到列表中。
ddlList.DataValueField = "value";
ddlList.DataTextField = "text";
ddlList.DataSource = query.ToList();
ddlList.DataBind();
答案 1 :(得分:2)
将您的XML文件放在App_Data
内或程序中的任何位置以及MapPath
中
分配其路径,并在最后一行中指定第一个XML列的名称。
这里我使用的是“代码”,因为它是我的第一个XML列,country是我要在dropdownlist
中显示的列的名称。
private void BindCountry()
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("~//App_Data//countries.xml"));
foreach (XmlNode node in doc.SelectNodes("//country"))
{
ddlcountry.Items.Add(new ListItem(node.InnerText, node.Attributes["code"].InnerText));
}
}