2012-09-05 116 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

相關問題