获取GridView的列标题的CSS

时间:2016-11-29 16:29:02

标签: c# css asp.net gridview

我在GridView中使用自定义排序,通过单击标题文本来按该列排序。现在我想在标题文本旁边添加一个小箭头来指示排序的方向。我正在用css风格做到这一点,它的工作原理。问题是,通过这样做,先前设置的(在aspx文件中)的css样式消失了。

为了对抗这个问题,人们会认为这只是获取当前css样式字符串并附加新样式的问题。说起来容易做起来难。

我试过了:

<asp:GridView ID="gvDocs" runat="server" CssClass="table" ...
    <Columns>
        <asp:BoundField DataField="doc_number" HeaderText="#" ReadOnly="True" SortExpression="doc_number" ShowHeader="True">
            <HeaderStyle CssClass="vert-align" />
            <ItemStyle CssClass="vert-align" />
        </asp:BoundField>
...

我尝试将代码放在几乎所有地方,但结果总是相同。

接下来是aspx文件的片段

gcDocs_Sorting

并非每个标题都有相同的css样式所以我真的需要知道当前样式是什么,并附加一个显示箭头。

我正在更新 gvDocs.HeaderRow.Cells[GetColumnIndex(Session[GV_ORDERS_SORT_FIELD].ToString(), gvDocs)].CssClass += " sortDesc"; // or "sortAsc", depends on the result of a previous `if`. 事件中的css样式,如下所示:

char *array[5];

那么如何获得列标题的当前css?

1 个答案:

答案 0 :(得分:0)

你可以让GridView添加css类来自动排序

您可以在代码中执行此操作:

gvDocs.SortedAscendingHeaderStyle.CssClass = "sorted-asc";
gvDocs.SortedAscendingCellStyle.CssClass = "sorted-asc";
gvDocs.SortedDescendingHeaderStyle.CssClass = "sorted-desc";
gvDocs.SortedDescendingCellStyle.CssClass = "sorted-desc";

或直接在GridView的标记上:

<asp:GridView ID="gvDocs" runat="server" 
    SortedAscendingHeaderStyle-CssClass="sorted-asc"
    SortedAscendingCellStyle-CssClass="sorted-asc"
    SortedDescendingHeaderStyle-CssClass="sorted-desc"
    SortedDescendingCellStyle-CssClass="sorted-desc">
</asp:GridView>