0

如何使用 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>
4

2 回答 2

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>
于 2012-09-05T22:27:30.293 回答
0

我要么创建一个类或一个结构,然后从/到 xml 序列化/反序列化到我的类/结构。以下是序列化 xml 文档的方法:

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

在此之后,我创建了我的类/结构的通用列表,并且它更容易绑定到任何东西并进行一般操作。

祝你好运。

于 2012-09-05T22:36:19.837 回答