Лучший способ сортировки 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 ответ

Хорошо, я нашел пару возможных ответов для вас. Во-первых, если вы хотите использовать XmlDataSource специально, ответом будет использование XSLT-файла для определения переводов, как в этом QA:

Как правильно передать параметр XSLT в XmlDataSource?

Кроме того, в этом посте описывается, как связать GridView с результатами запроса LINQ, используя XDocument для загрузки файла XML:

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

Другие вопросы по тегам