如何我可以从我的ASP.NET应用程序中XML文件填充我的数据的DropDownList [英] How I can fill my DropDownList with Data from a XML File in my ASP.NET Application

查看:95
本文介绍了如何我可以从我的ASP.NET应用程序中XML文件填充我的数据的DropDownList的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个DropDownList一个ASP.NET应用程序,我想它与我的XML文件中的值填充。
我如何我可以使用XML为这个,我在我的XML的每个值创建一个新的项目。

我的XML文件:

 <?XML版本=1.0独立=YES&GT?;
< NewDataSet>
  < XS:模式ID =NewDataSet的xmlns =的xmlns:XS =htt​​p://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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆