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