我有一个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框架的新手。有人帮助我。
答案 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
绑定。
在标记中需要进行以下更改:
XmlDataSource
DataFile
XPath
查询以查找Xml文件中的Item
元素。DataSourceID
与您的下拉列表绑定,并提供适当的DataTextField
和DataValueField
示例:
<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" />
XmlDocument
中加载XML并构建ListItems
您可以按照以下步骤操作:
XmlDocument
ListItem
并添加到DropDownList
。类似的东西:
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();