如何使用xmldatasource将xml文件绑定到asp.net下拉列表?如果我这样做,我会看到空的下拉列表。
ASP.NET
<asp:DropDownList runat="server" ID="ddlDEMO" DataValueField="BILLAB" DataTextField="BILLAB" DataSourceID="xdsDemo">
</asp:DropDownList>
<asp:XmlDataSource ID="xdsDemo" runat="server" DataFile="~/XML/Bills.xml"
XPath="/Bills/Bill"></asp:XmlDataSource>
XML:
<?xml version="1.0" encoding="utf-8" ?>
<Bills>
<Bill>
<BILLID>1</BILLID>
<BILLAB>ONE</BILLAB>
</Bill>
</Bills>
答案 0 :(得分:2)
它适用于属性,而不是元素。如果您的XML看起来像这样,那么这将有用:
<?xml version="1.0" encoding="utf-8" ?>
<Bills>
<Bill BILLID="1" BILLAB="ONE">
</Bill>
</Bills>
您可以使用转换来修复它。看这里: http://kanakaiah.wordpress.com/2008/05/06/using-xslt-files-with-the-new-xmldatasource-control/
根据该链接中的解决方案,您应该像这样编写xsl:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Bills">
<Bills>
<xsl:apply-templates select="Bill"/>
</Bills>
</xsl:template>
<xsl:template match="Bill">
<Bill>
<xsl:attribute name="BILLID">
<xsl:value-of select="BILLID"/>
</xsl:attribute>
<xsl:attribute name="BILLAB">
<xsl:value-of select="BILLAB"/>
</xsl:attribute>
</BILL>
</xsl:template>
</xsl:stylesheet>
答案 1 :(得分:0)
我会创建一个类或一个结构,并从/到xml序列化/反序列化到我的类/结构。以下是序列化xml文档的方法:
http://support.microsoft.com/kb/815813
在此之后,我创建了一个我的类/结构的通用List,它更容易绑定到任何东西并进行操作。
祝你好运。