首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将xml数据绑定到c#中的下拉列表

无法将xml数据绑定到c#中的下拉列表
EN

Stack Overflow用户
提问于 2013-10-01 07:02:56
回答 3查看 441关注 0票数 0

我有一个这样的xml文件:

代码语言:javascript
复制
<DATASET>
<RECORD ClientId="1398" Name="Mausami Pandit"></RECORD>
<RECORD ClientId="1121" Name="Tony Mead"></RECORD>
<RECORD ClientId="1124" Name="Frank Lead"></RECORD>
<RECORD ClientId="1008" Name="Julie Lily"></RECORD>
</DATASET>

我需要将这些xml数据用于c#.net中的下拉菜单。

代码语言:javascript
复制
 string s13 = GetClientXML(); // by this function i am taking xml data to s13 variable.
 StringReader theReader = new StringReader(s13);
 DataSet theDataSet = new DataSet();
 DataRow row1 = theDataSet.Tables[0].NewRow();
 row1["ClientId"] = 0;
 row1["Name"] = "-- Select --";
 theDataSet.Tables[0].Rows.Add(row1);
 theDataSet.ReadXml(theReader);                                    

 // ddlassto is my combobox. System.Windows.Forms.ComboBox                                                         
 ddlassto.DataSource = theDataSet.Tables[0];
 ddlassto.ValueMember = "ClientId";
 ddlassto.DisplayMember = "Name";

但这不管用。它没有填充到下拉列表中。

有人能帮我解决这个问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-01 07:12:37

代码语言:javascript
复制
var items = XElement.Parse(GetClientXML()).Descendants()
           .Select(node=> new{ClientId =(string)node.Attribute("ClientId"), Name = (string)node.Attribute("Name")}).ToList();

ddlassto.DataSource = items;
ddlassto.ValueMember = "ClientId";
ddlassto.DisplayMember = "Name";
票数 0
EN

Stack Overflow用户

发布于 2013-10-01 07:06:19

将xml存储在数据集中,然后将其分配给下拉列表。

代码语言:javascript
复制
DataSet ds=new DataSet();
ds.ReadXml("xmlfile.xml");
ddlassto.DataSource = ds; or ddlassto.DataSource = ds.Tables[0]; 
ddlassto.TextField = "field name"; // field to display in dropdown
ddlassto.ValueField="Value Field";
ddlassto.DataBind();
票数 0
EN

Stack Overflow用户

发布于 2013-10-01 07:07:23

如果我从您想要添加xml值的注释中了解您的问题,然后再向下拉列表项添加一个值,请尝试如下

代码语言:javascript
复制
XmlDocument xdoc=new XmlDocument();
xdoc.Load("xmlfile.xml");

XmlNodeList node = xdoc.SelectSingleNodes("/NewDataSet/resources/");
foreach(XmlNode n in node )
{
ListItem l = new ListItem();
    l.Text = n.InnerXml.ToString();
    ddlassto.Items.Add(l);
}
ddlassto.DataBind();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19109956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档