ASP.NET 4 GridView在排序和绑定通用List <t> </t>时不显示箭头

时间:2011-11-10 08:37:16

标签: asp.net sorting gridview

我的问题是:如何在排序和绑定通用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标记的内容。

 &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"。这是我给aspx页面的SortedAscendingHeaderStyle属性的名称。

我的问题是我的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 :(得分:0)

点击此处Stack Overflow Q.10304546。此技术可帮助您将箭头显示在列标题中。