2012-09-05 90 views
0

如何使用xmldatasource将xml文件绑定到asp.net dropdownlist?如果我像下面这样做,我会看到空的下拉列表。如何使用XML数据源将xml文件绑定到dropdownlist?

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> 

回答

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> 
0

我就可以创建一个类或结构和/序列化/反序列化到XML我的课/结构。这里是你如何序​​列化XML文档:

http://support.microsoft.com/kb/815813

在此之后,我创建我的类/结构泛型列表,它是很容易结合到任何东西,操纵一般。

祝你好运。

+1

这家伙绝对知道该怎么做:)。现在使用这个策略。 – Musicode

相关问题