0

我有一个这样的 xml 文件:

<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 中的下拉菜单。

 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";

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

谁能帮我解决这个问题?

4

3 回答 3

0
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";
于 2013-10-01T07:12:37.820 回答
0

另一种将值逐一添加到下拉列表项的方法如果我从评论中理解您的问题,您想将 xml 值添加到列表项中,请尝试此操作

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();
于 2013-10-01T07:07:23.477 回答
0

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

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();
于 2013-10-01T07:06:19.783 回答