2012-10-30 2 views
2

Сначала я попробовал использовать xmldatasource и узнал, что вы не можете его отсортировать. Если вы попробуете, вы получите ошибку: «System.NotSupportedException: источник данных не поддерживает сортировку».Лучший способ сортировки Gridview с помощью xmldatasource?

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: The GridView 'GridView1 обстреляли событие сортировки, который не был обработан."

Мой XML выглядит так:

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

Так что это лучший способ, чтобы обойти эту проблему? Или я могу каким-то образом обработать событие сортировки? Или было бы проще загружать XML-данные в LINQ или что-то в этом роде?

ответ

1

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

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

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

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

Смежные вопросы