如何我可以从我的ASP.NET应用程序中XML文件填充我的数据的DropDownList [英] How I can fill my DropDownList with Data from a XML File in my ASP.NET Application
问题描述
我有一个DropDownList一个ASP.NET应用程序,我想它与我的XML文件中的值填充。
我如何我可以使用XML为这个,我在我的XML的每个值创建一个新的项目。
我的XML文件:
<?XML版本=1.0独立=YES&GT?;
< NewDataSet>
< XS:模式ID =NewDataSet的xmlns =的xmlns:XS =http://www.w3.org/2001/XMLSchema中的xmlns:MSDATA =瓮:架构 - 微软COM:XML-MSDATA >
< XS:元素的名称=NewDataSetMSDATA:IsDataSet =真MSDATA:UseCurrentLocale =真正的>
< XS:复杂类型>
< XS:选择的minOccurs =0的maxOccurs =无界>
< XS:元素的名称=资源>
< XS:复杂类型>
< XS:序列>
< XS:元素的名称=WERK类型=XS:字符串的minOccurs =0/>
< / XS:序列>
< / XS:复杂类型>
< / XS:组件>
< / XS:选择>
< / XS:复杂类型>
< / XS:组件>
< / XS:架构>
<资源>
<&WERK GT; foo1< / WERK> <! - 第一个值 - >
< /资源>
<资源>
<&WERK GT;&foo2的LT; / WERK> <! - 第二个值 - >
< /资源>
<资源>
<&WERK GT; foo3< / WERK> <! - 第三个值 - >
< /资源>
< / NewDataSet>
在我的ASPX:
< ASP:的XmlDataSource ID =XMLDATA=服务器数据文件=〜/ App_Data文件/ Werke.xml/>
< ASP:DropDownList的ID =dropWerk=服务器WIDTH =245px/>
我需要一种方法一的,填补我的数据的DropDownList从XML文件
塔拉索夫
CS文件:
私人无效BindXML()
{
XmlDocument的xmlDoc中= XMLData.GetXmlDocument(); 使用(DataSet的DS =新的DataSet())
{
ds.ReadXml(XMLData.DataFile);
dropWerk.DataSource = DS;
dropWerk.DataTextField =WERK;
dropWerk.DataBind();
}
}
第一种方法:
在XML存储在数据集,然后将其指定DROPDOWNLIST
的DataSet DS =新的DataSet();
ds.ReadXml(xmlfile.xml);dropWerk.DataSource = DS;或dropWerk.DataSource = ds.Tables [0];
dropWerk.TextField =字段名; //字段在下拉列表显示
dropWerk.ValueField =值字段
dropWerk.DataBind();
更新答案:
* 第2种方法:的*一个值添加一个到你的DropDownList项目
如果我理解你的问题从注释中要添加XML值列表项
试试这个
XDOC XmlDocument的=新的XmlDocument();
xdoc.Load(xmlfile.xml);XmlNodeList中节点= xdoc.SelectSingleNodes(/ NewDataSet /资源/);
的foreach(在节点XmlNode的N)
{
列表项L =新的ListItem();
l.Text = n.InnerXml.ToString();
drpWerk.Items.Add(升);
}
drpWerk.DataBind();
I have a ASP.NET Application with a DropDownList and I want it fill with my XML File Values. How I can I use my XML for this that I create a new item for every Value in my XML.
My XML File:
<?xml version="1.0" standalone="yes" ?>
<NewDataSet>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="resources">
<xs:complexType>
<xs:sequence>
<xs:element name="Werk" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<resources>
<Werk>foo1</Werk> <!-- The first Value-->
</resources>
<resources>
<Werk>foo2</Werk> <!-- The second Value-->
</resources>
<resources>
<Werk>foo3</Werk> <!-- The third Value-->
</resources>
</NewDataSet>
In my ASPX:
<asp:XmlDataSource ID="XMLData" runat="server" DataFile="~/App_Data/Werke.xml" />
<asp:DropDownList ID="dropWerk" runat="server" Width="245px" />
I need a kind of a Method that fill my DropDownList with the Data from the XML File
tarasov
CS File:
private void BindXML()
{
XmlDocument xmldoc = XMLData.GetXmlDocument();
using (DataSet ds = new DataSet())
{
ds.ReadXml(XMLData.DataFile);
dropWerk.DataSource = ds;
dropWerk.DataTextField = "Werk";
dropWerk.DataBind();
}
}
First Method: store the xml in a data set and then assign it to dropdownlist
DataSet ds=new DataSet();
ds.ReadXml("xmlfile.xml");
dropWerk.DataSource = ds; or dropWerk.DataSource = ds.Tables[0];
dropWerk.TextField = "field name"; // field to display in dropdown
dropWerk.ValueField="Value Field";
dropWerk.DataBind();
Updated Answer: *2nd Method:* add one by one value to your dropdownlist items If I understand your question from the comments you want to add xml values to list items try this
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();
drpWerk.Items.Add(l);
}
drpWerk.DataBind();
这篇关于如何我可以从我的ASP.NET应用程序中XML文件填充我的数据的DropDownList的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!