C#Gridview标题样式未应用于排序

C#Gridview标题样式未应用于排序,c#,html,css,asp.net,gridview,C#,Html,Css,Asp.net,Gridview,我不明白为什么sortedScenedingHeaderStyle CssClass和sortedScenedingHeaderStyle CssClass会应用于对我的GridView进行排序时的标题 这是我的标记。我需要在代码隐藏中配置它吗 .ascending a { background: url(/images/asc.gif) right no-repeat; display: block; padding: 0 25px 0

我不明白为什么
sortedScenedingHeaderStyle CssClass
sortedScenedingHeaderStyle CssClass
会应用于对我的
GridView
进行排序时的标题

这是我的标记。我需要在代码隐藏中配置它吗

.ascending a
    {
        background: url(/images/asc.gif) right no-repeat;
        display: block;
        padding: 0 25px 0 5px;
    }

    .descending a
    {
        background: url(/images/desc.gif) right no-repeat;
        display: block;
        padding: 0 25px 0 5px;
    }

<asp:GridView ID="gvOrderItems" runat="server" GridLines="None" CellSpacing="-1" AutoGenerateColumns="false" SortedAscendingHeaderStyle-CssClass="ascending"
  AllowSorting="true" OnRowDataBound="gvOrderItems_RowDataBound" SortedDescendingHeaderStyle-CssClass="descending" OnSorting="gvOrderItems_Sorting" EnableViewState="true" AllowPaging="true" PageSize="10" OnPageIndexChanging="gvOrderItems_PageIndexChanging1">                       
  <Columns>                             
    <asp:BoundField DataField="OrderDate" HeaderText="Date" HeaderStyle-Font-Underline="true" HeaderStyle-ForeColor="White" ControlStyle-Font-Underline="true" DataFormatString="{0:dd/MM/yyyy}" SortExpression="OrderDate" />
    <asp:BoundField DataField="OrderNumber" HeaderText="Order Number" HeaderStyle-Font-Underline="true" HeaderStyle-ForeColor="White" SortExpression="OrderNumber" />
    <asp:BoundField DataField="SKUNumber" HeaderText="Product Number" HeaderStyle-Font-Underline="true" HeaderStyle-ForeColor="White" SortExpression="SKUNumber" />
    <asp:BoundField DataField="OrderItemSKUName" HeaderText="Product Description" />
    <asp:BoundField DataField="mtrx_Code2" HeaderText="Size" />
    <asp:BoundField DataField="OrderItemUnitCount" HeaderText="OTY" />
    <asp:BoundField DataField="OrderItemStatus" HeaderText="Status" />        
  </Columns>
  <PagerStyle HorizontalAlign="Right" CssClass="cssPager"/>    

</asp:GridView>
。从一个
{
背景:url(/images/asc.gif)右侧无重复;
显示:块;
填充:0 25px 0 5px;
}
.下降a
{
背景:url(/images/desc.gif)右侧无重复;
显示:块;
填充:0 25px 0 5px;
}

多亏了康纳斯范,我才得以解决这个问题。基本上,循环遍历列并匹配请求的排序表达式以获得列的索引。这是我的解决办法

foreach (DataControlField col in gvOrderItems.Columns)
{
    if (col.SortExpression == sortExpression)
    {
      int index = gvOrderItems.Columns.IndexOf(col);
      gvOrderItems.Columns[index].HeaderStyle.CssClass = "descending"; 
    }
}

您是否尝试对数据进行排序并检查是否应用了类?您的GridView可能必须绑定到标记中的数据源才能自动运行。我对数据进行排序时,Hi Piyush类从未应用过?在排序事件期间,我是否可以通过代码添加它?您是否尝试过
gvordItems.Columns[n].HeaderStyle.CssClass
(其中n是已排序列的索引)?在
排序事件中,您可以循环遍历列,并获得与
e.SortExpression
相同的
SortExpression