如何将XML文件加载到.net中的下拉列表中

时间:2014-05-13 11:46:51

标签: c# asp.net .net asp.net-mvc

我有一个aspx文件(Demo.aspx)和一个XML文件(color.xml)。 如何在下拉列表中加载XML文件? 如何将我的下拉列表ID映射到该XML文件(color.xml)

Demo.aspx:

<asp:Content ID="C2" ContentPlaceHolderID="ContentPlaceHolder10" runat="server">
<tr>
    <td><asp:Label ID="L01" runat="server" Text="Colour :* " /></td>
    <td>
        <asp:RequiredFieldValidator ID="V1" ControlToValidate="v1color" CssClass="error" InitialValue="" Display="Dynamic" SetFocusOnError="true" runat="server">
        Please select a colours <br />
        </asp:RequiredFieldValidator>
        <asp:UpdatePanel ID="Panel3" runat="server">
            <ContentTemplate>
                <asp:DropDownList ID="v1color" DataTextField="ddl" Width="100%" TabIndex="16" runat="server" />
            </ContentTemplate>                
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="ddlasyRequest" EventName="SelectedIndexChanged" />
            </Triggers>
        </asp:UpdatePanel>
    </td>
</tr>

</asp:Content>

color.xml:

<?xml version="1.0" encoding="utf-8" ?>

<Items>
  <Item ddlText="None" />
  <Item ddlText="Natural - RED" />
  <Item ddlText="Natural - WHITE" />
  <Item ddlText="Natural - BLUE" />
  <Item ddlText="Natural - YELLOW" />
  <Item ddlText="Natural - GREEN" />

</Items>

我是Dot net框架的新手。有人帮助我。

3 个答案:

答案 0 :(得分:1)

使用XmlDataSource。使用xml加载XmlDataSource并将ddl DataSource设置为xmldatasource。

http://msdn.microsoft.com/en-us/library/vstudio/494y92bs%28v=vs.100%29.aspx

答案 1 :(得分:0)

解决方案1 ​​:将您的下拉列表与XMLDataSource绑定。

在标记中需要进行以下更改:

  1. 在标记中添加XmlDataSource
  2. DataFile
  3. 中提供XML文件的物理路径
  4. 提供XPath查询以查找Xml文件中的Item元素。
  5. DataSourceID与您的下拉列表绑定,并提供适当的DataTextFieldDataValueField
  6. 示例:

    <asp:XmlDataSource ID="XmlDataSource1" runat="server" 
            DataFile="~/XML/XMLFile1.xml" XPath="//Item"></asp:XmlDataSource>
    
    <asp:DropDownList ID="v1color" DataSourceID="XmlDataSource1" 
                                   DataTextField="ddlText" 
                                   DataValueField="ddlText" 
                                   Width="100%" TabIndex="16" runat="server" />
    


    解决方案2 :在XmlDocument中加载XML并构建ListItems

    您可以按照以下步骤操作:

    1. XmlDocument
    2. 中加载XML
    3. 对于每个xml节点,检查ddlText属性并获取其值
    4. 从检索到的值中新建ListItem并添加到DropDownList
    5. 类似的东西:

       XmlDocument xDocument = new XmlDocument();
       xDocument.Load(@"YourXmlFile.xml");
      
       foreach (XmlNode node in xDocument.GetElementsByTagName("Item"))
       {
            v1color.Items.Add(new ListItem(node.Attributes["ddlText"].Value));
       }
      

答案 2 :(得分:0)

下面应该有效

var doc = XDocument.Load("c:\path\to\your\xml\your.xml");
this.DropDownList1.DataSource = doc.Root.Descendants().Select(i => i.Attribute("ddlText").Value);
this.DropDownList1.DataBind();