我在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?
答案 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>