我的问题是:如何在排序和绑定通用List时使GridView显示箭头?
我正在测试ASP.NET中的新属性,以便在此博客条目http://blogs.msdn.com/b/scothu/archive/2010/08/28/gridview-with-sort-arrows-and-showing-header-when-empty.aspx之后在GridView中进行排序时显示箭头。
我的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标记的内容。
<th style="background-color: rgb(109, 149, 225);" scope="col" class="SortedAscending"><a style="color: White;" href="javascript:__doPostBack('ctl00$MainContent$GridView3','Sort$Name')">Name</a></th>
我在这里看到的重要事项是class="SortedAscending"
。这是我给aspx页面的SortedAscendingHeaderStyle
属性的名称。
我的问题是我的BLL返回generic List<T>
,当我将它们绑定到GridView时,它会生成类似下面的HTML标记。
<th scope="col"><a style="color: White;" href="javascript:__doPostBack('ctl00$MainContent$GridView2','Sort$Name')">Name</a></th>
在这个标记中,我遗漏了class="SortedAscending"
,这就是我在GridView中获取箭头时出现问题的原因。