ASP.NET 4 GridView не показывает стрелки при сортировке и связывается с общим списком <T> - PullRequest
0 голосов
/ 10 ноября 2011

Мой вопрос: как заставить GridView показывать стрелки при сортировке и связывать с общим списком?

Я тестирую новые свойства в ASP.NET для отображения стрелок при сортировке в GridView после этой записи в блоге http://blogs.msdn.com/b/scothu/archive/2010/08/28/gridview-with-sort-arrows-and-showing-header-when-empty.aspx.

Моя разметка aspx такая же

<asp:GridView ID="GridView2" runat="server" AllowSorting="true" CssClass="gridView"
...
    <SortedAscendingCellStyle BackColor="#F5F7FB" />
    <SortedAscendingHeaderStyle BackColor="#6D95E1" CssClass="SortedAscending" />
    <SortedDescendingCellStyle BackColor="#E9EBEF" />
    <SortedDescendingHeaderStyle BackColor="#4870BE" CssClass="SortedDescending" />
...
</asp:GridView>

Это прекрасно работает для меня, когда GridView связан с SqlDataSource или DataSet, и я видел в статьях, что ObjectDataSource тоже работает хорошо. Он генерирует что-то вроде следующей разметки HTML.

 &lt;th style="background-color: rgb(109, 149, 225);" scope="col" class="SortedAscending"&gt;&lt;a style="color: White;" href="javascript:__doPostBack('ctl00$MainContent$GridView3','Sort$Name')"&gt;Name&lt;/a&gt;&lt;/th&gt;

Важная вещь, которую я вижу здесь, это class="SortedAscending". Это имя я дал атрибуту SortedAscendingHeaderStyle страницы aspx.

Моя проблема в том, что мои BLL возвращают generic List<T>, и когда я связываю их с GridView, он генерирует что-то вроде следующей разметки HTML.

&lt;th scope="col"&gt;&lt;a style="color: White;" href="javascript:__doPostBack('ctl00$MainContent$GridView2','Sort$Name')"&gt;Name&lt;/a&gt;&lt;/th&gt;

В этой разметке мне не хватает class="SortedAscending", и поэтому у меня возникают проблемы с получением стрелок в моем GridView.

1 Ответ

0 голосов
/ 24 апреля 2012

Проверьте здесь Переполнение стека Q.10304546 . Этот прием может помочь вам отобразить стрелки в заголовках столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...