【问题标题】:Binding XML to an ASP.NET Gridview将 XML 绑定到 ASP.NET Gridview
【发布时间】:2012-07-13 12:56:09
【问题描述】:

我有一个这样的 XML 文档:

<?xml version="1.0" encoding="UTF-8"?>
<cars>
    <car type="Wagon" make="Volvo">
        <colours>
            <colour>Red</colour>
            <colour>Yellow</colour>
        </colours>
    </car>
    <car type="Sedan" make="Audi">
        <colours>
            <colour>Green</colour>
            <colour>Blue</colour>
        </colours>
    </car>
</cars>

这是由 ASP.NET XmlDataSource 生成的,它使用 XSL 文件来转换 HTTP URL 的 XML 输出。

我想将 XmlDataSource 绑定到 ASP.NET gridview,但是在使用自动生成列时,只绑定了 type 和 make 属性。

我希望将汽车的颜色绑定到 CSV 格式的第三列,如下所示:

Type     Make     Colours
Wagon    Volvo    Red, Yellow
Sedan    Audi     Green, Blue

我知道这可以修改我的转换文件以将颜色存储在 XML 属性中,但这会导致难以根据颜色过滤 XmlDataSource。

我计划动态修改 XmlDataSource 的 Xpath 属性,以便过滤显示的数据。

有什么方法可以使用 ASP.NET 实现此功能。我可以使用 .NET Framework 4.0。

【问题讨论】:

  • 您需要一个 ItemTemplate 字段并在其中使用类似转发器的东西...您可以发布 xmldatasource 的标记吗?

标签: asp.net xml data-binding gridview


【解决方案1】:

肯定有更简单的方法,但这里有一些东西可以开始......经过大量挖掘后得到这个。

您需要一个 TemplateField。您需要在其中放置一个 XmlDataSource 和一个中继器。

将 xmldatasource 指向所考虑的文件。指定前面提到的相同的 http url 和 xslt 转换。在 XPath 中,您需要考虑汽车节点中的所有属性来选择节点

所以对于第一个 xmldatasource,Xpath 应该是这样的

cars/car[@type='Wagon' and @make='Volvo']/colours/colour

在中继器项模板中执行以下操作:

XPath(".")

如果您对此练习的代码示例感兴趣:

http://www.coderun.com/ide/?w=aKnePm185kW3jo0Uzr_s3Q

编码愉快。

【讨论】:

    猜你喜欢
    • 2010-12-31
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 2012-02-17
    相关资源
    最近更新 更多