gpt4 book ai didi

c# - 运行时的 ASP.Net GridView 和 XMLDataSource 绑定(bind)

转载 作者:行者123 更新时间:2023-11-30 17:14:25 25 4
gpt4 key购买 nike

我正在使用 ASP.Net 2.0 并尝试在运行时使用 GridView 和 XMLDataSource 显示转换后的 xml 数据。

这是我的 xml 数据 (Input.xml):

<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
<cd>
<title>Still got the blues</title>
<artist>Gary Moore</artist>
<country>UK</country>
<company>Virgin records</company>
<price>10.20</price>
<year>1990</year>
</cd>
</catalog>

这是转换 (Transform.xslt):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<CDCatalog>
<xsl:apply-templates/>
</CDCatalog>
</xsl:template>

<xsl:template match="cd">
<CD>
<xsl:apply-templates select="*">
</xsl:apply-templates>
</CD>
</xsl:template>


<xsl:template match="catalog/cd/*">
<xsl:attribute name="{local-name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>

</xsl:stylesheet>

供您引用,这将是转换后的 xml:

<CDCatalog>
<CD title="Empire Burlesque" artist="Bob Dylan" country="USA" company="Columbia" price="10.90" year="1985"/>
<CD title="Hide your heart" artist="Bonnie Tyler" country="UK" company="CBS Records" price="9.90" year="1988"/>
<CD title="Greatest Hits" artist="Dolly Parton" country="USA" company="RCA" price="9.90" year="1982"/>
<CD title="Still got the blues" artist="Gary Moore" country="UK" company="Virgin records" price="10.20" year="1990"/>
</CDCatalog>

现在这是我在 C# 代码中所做的(GridView1 在 .aspx 页面上创建):

        XmlDataSource xmlDS = new XmlDataSource();
xmlDS.EnableCaching = false;
xmlDS.DataFile = "~/Input.xml";
xmlDS.TransformFile = "~/Transform.xslt";
xmlDS.XPath = "/CDCatalog/CD";
GridView1.DataSourceID = xmlDS.ID;
GridView1.DataBind();
GridView1.Visible = true;

我在 GridView 中没有看到任何数据。我在互联网上查了很多,但他们通常谈论在设计时在 aspx 页面中做这种事情,而不是在运行时在代码中做。我不确定这是否是对 GridView/XMLDataSource 绑定(bind)的限制,或者我是否做错了什么。我很感激这方面的任何帮助。谢谢,斯里尼瓦斯

最佳答案

只需更改这一行:

GridView1.DataSourceID = xmlDS.ID;

为此:

GridView1.DataSource = xmlDS;

enter image description here

关于c# - 运行时的 ASP.Net GridView 和 XMLDataSource 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8720242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com