使用xmldatasource对Gridview进行排序的最佳方法?

时间:2012-10-30 13:32:24

标签: asp.net .net gridview xmldatasource

我首先尝试使用xmldatasource,发现你无法对其进行排序。如果您尝试,您将收到错误:“System.NotSupportedException:数据源不支持排序。”

    GridView1.AllowSorting = true;
    DataSet carsDataSet;
    string filePath = Server.MapPath("App_Data/cars.xml");
    carsDataSet = new DataSet();
    //Read the contents of the XML file into the DataSet
    carsDataSet.ReadXml(filePath);
    GridView1.DataSource = carsDataSet.Tables[0].DefaultView;
    GridView1.DataBind();

这将给我异常:“异常详细信息:System.Web.HttpException:GridView'GridView1'触发了事件排序,未处理。”

我的xml是这样的:

<Cars>
<car>
<id>11</id>
<make>Audi</make>
<model>A4</model>
<price>39000</price>
</car>
</Cars>

那么解决这个问题的最佳方法是什么?或者我可以以某种方式处理排序事件?或者更容易将XML数据加载到LINQ或类似的东西?

1 个答案:

答案 0 :(得分:1)

好的,我找到了几个可能的答案。首先,如果您想特别使用XmlDataSource,答案是使用XSLT文件来指定翻译,如本质量保证:

How do I pass a XSLT parameter to a XmlDataSource correctly?

或者,这篇文章描述了如何使用XDocument将GridView绑定到LINQ查询的结果来加载XML文件:

http://forums.asp.net/t/1627778.aspx/1?Sort+results+from+XMLDataSource