C# GridView没有';不显示分页导航

C# GridView没有';不显示分页导航,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个GridView控件,它使用数据表作为数据源。我已经在控件上启用了分页,并且GridView显示了我指定为PageSize的行数。但是,没有分页导航,因此我无法更改页面 问题:如何显示分页导航 GridView定义: <asp:GridView runat="server" ID="gvResults" CssClass="report" DataKeyNames="LogId" AllowSorting="True" AllowPaging="True" PageSize="5"

我有一个
GridView
控件,它使用数据表作为数据源。我已经在控件上启用了分页,并且
GridView
显示了我指定为
PageSize
的行数。但是,没有分页导航,因此我无法更改页面

问题:如何显示分页导航

GridView
定义:

<asp:GridView runat="server" ID="gvResults" CssClass="report" DataKeyNames="LogId" AllowSorting="True" AllowPaging="True" PageSize="5" OnRowDataBound="gvResults_OnRowDataBound" OnPageIndexChanging="gvResults_OnPageIndexChanging"></asp:GridView>
注意:我已经在调试器中验证了datatable
dt
有100多行

onpageindexchange()
事件,基于的答案,尽管在我的情况下它不起作用(我不确定为什么有必要,因为在您尝试转到下一页之前,该事件不应该触发,这将需要首先显示分页导航,对吗?)

以下是我看到的:

我希望能找到一些方法来浏览结果

我还尝试将
页面设置
添加到我的
网格视图
,如下所示:

<asp:GridView runat="server" ID="gvResults" CssClass="report" DataKeyNames="LogId" AllowSorting="True" AllowPaging="True" PageSize="5" OnRowDataBound="gvResults_OnRowDataBound" OnPageIndexChanging="gvResults_OnPageIndexChanging">
     <PagerSettings Mode="NextPreviousFirstLast" FirstPageText="First" LastPageText="Last" NextPageText="Next" PreviousPageText="Previous" Position="Bottom"></PagerSettings>
</asp:GridView>

在经历了重重的头部撞击和咬牙切齿之后,我终于明白了这一点

我有另一个操作
OnRowDataBound()
的事件,该事件将特定列格式化为HTML,而此转换导致在对页脚行操作时没有分页控件

解决方案是在执行转换之前检查绑定行是否为DataRow

protected void gvResults_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
    if (!(sender is GridView) || e.Row.RowType != DataControlRowType.DataRow) return;

    //do stuff
}
然后幸福随之而来:


检查html呈现的代码,可能有一些css隐藏了it@Aristos-我已使用呈现HTML的屏幕截图更新了我的问题。行中没有应该具有分页控件的内容。
<asp:GridView runat="server" ID="gvResults" CssClass="report" DataKeyNames="LogId" AllowSorting="True" AllowPaging="True" PageSize="5" OnRowDataBound="gvResults_OnRowDataBound" OnPageIndexChanging="gvResults_OnPageIndexChanging">
     <PagerSettings Mode="NextPreviousFirstLast" FirstPageText="First" LastPageText="Last" NextPageText="Next" PreviousPageText="Previous" Position="Bottom"></PagerSettings>
</asp:GridView>
protected void gvResults_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
    if (!(sender is GridView) || e.Row.RowType != DataControlRowType.DataRow) return;

    //do stuff
}