asp.net GridView不显示排序箭头

本文关键字:排序 显示 net GridView asp | 更新日期: 2023-09-27 18:12:00

我有以下Gridview。我需要排序箭头在每个列头排序。我将AllowSorting属性设置为true。但它没有显示箭头。此外,我在模板字段中添加了SortExpression,但它仍然没有显示排序箭头。我无法理解这个问题。我如何解决这个问题?代码如下

<asp:GridView ID="dgvCatReport" runat="server"
              AutoGenerateColumns="False" CellPadding="4"
              ForeColor="#333333" GridLines="None"
              AllowPaging="True"
              AllowSorting="true"
              OnPageIndexChanging="dgvCatReport_PageIndexChanging"
              PagerSettings-Mode="NumericFirstLast"
              PagerSettings-Position="TopAndBottom"
              PageSize="10"
              CssClass=" table table-striped  table-hover"
              AlternatingRowStyle-CssClass="alt"
              PagerStyle-CssClass="bs-pagination">
    <columns>
        <asp:templatefield headertext="Category Name" sortexpression="CatName">
            <itemtemplate>
                <h5><%# Eval("CatName") %></h5>
            </itemtemplate>
            <headerstyle horizontalalign="Left" />
            <itemstyle width="200px" />
        </asp:templatefield>
        <asp:templatefield headertext="Total Views" sortexpression="ReportCount">
            <itemtemplate>
                <span><%# Eval("ReportCount") %></span>
            </itemtemplate>
            <headerstyle horizontalalign="Left" />
            <itemstyle width="75px" />
        </asp:templatefield>

        <asp:templatefield headertext="Daily Views" sortexpression="DailyCount">
            <itemtemplate>
                <span><%# Eval("DailyCount") %></span>
            </itemtemplate>
            <headerstyle horizontalalign="Left" />
            <itemstyle width="75px" />
        </asp:templatefield>
        <asp:templatefield headertext="Weekly Views" sortexpression="WeeklyCount">
            <itemtemplate>
                <span><%# Eval("WeeklyCount") %></span>
            </itemtemplate>
            <headerstyle horizontalalign="Left" />
            <itemstyle width="75px" />
        </asp:templatefield>
        <asp:templatefield headertext="Monthly Views" sortexpression="MonthlyCount">
            <itemtemplate>
                <span><%# Eval("MonthlyCount") %></span>
            </itemtemplate>
            <headerstyle horizontalalign="Left" />
            <itemstyle width="75px" />
        </asp:templatefield>
    </columns>
    <%--   <pagersettings mode="NumericFirstLast" position="TopAndBottom"></pagersettings>
    <pagerstyle backcolor="White" cssclass="pgr"></pagerstyle>--%>
</asp:GridView>

asp.net GridView不显示排序箭头

我不确定Asp.net grid是否提供用于排序的默认图像。但是您仍然可以使用自定义方法来显示图像。

设置Gridview属性

SortedAscendingHeaderStyle-CssClass="sortasc"
SortedDescendingHeaderStyle-CssClass="sortdesc"

添加css类

th.sortasc a  
{
   display:block; padding:0 4px 0 15px; 
   background:url("images/icons/ascArrow.png") no-repeat;
}
th.sortdesc a 
{
   display:block; padding:0 4px 0 15px; 
  background:url("images/icons/descArrow.png") no-repeat;
}