2016-04-13 16 views
2

我无法弄清楚为什么SortedDescendingHeaderStyle-CssClassSortedAscendingHeaderStyle-CssClass正在应用到排序我的GridView标题?C#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> 
+0

您是否尝试对数据进行排序并检查类是否被应用? –

+0

您的GridView可能必须绑定到标记中的数据源才能自动工作。 – ConnorsFan

+0

嗨Piyush类从来没有得到应用时,我排序的数据?无论如何,我可以在排序事件中通过代码添加它? – Kevin

回答

0

感谢ConnorsFan我能解决这个问题。基本上遍历列并匹配请求的排序表达式以获得列的索引。这是我的解决方案

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