ASP.NET GridView设置分页模式为NextPreviousFirstLast仅显示下页末页如何解决
GridView分页仅显示Next/Last按钮排查与解决方法
排查步骤
- 首先确认当前展示的是否为第一页数据:这是最常见的原因,ASP.NET GridView默认会在第一页自动隐藏「首页(First)」「上一页(Previous)」按钮,在最后一页自动隐藏「下一页(Next)」「尾页(Last)」按钮,属于框架默认交互逻辑。
- 检查PagerSettings配置是否正确:打开aspx页面代码,确认GridView的PagerSettings节点配置是否为
Mode="NextPreviousFirstLast",同时确认FirstPageText、PreviousPageText属性没有被设置为空值,也没有在后置cs代码中被动态修改为其他模式。 - 检查是否配置了自定义PagerTemplate:如果GridView下定义了
<PagerTemplate>节点,默认的分页模式配置会失效,需要手动在模板中添加所有分页按钮。 - 检查前端是否有样式/脚本隐藏按钮:按F12打开浏览器开发者工具,定位到分页栏区域,查看First、Previous对应的按钮元素是否存在,是否被CSS设置了
display: none或者visibility: hidden,或者被JS脚本修改了可见性。
对应解决方案
- 第一页默认隐藏的处理:如果需要强制在第一页也显示First、Previous按钮,可以在GridView的
DataBound事件中手动控制可见性,示例代码如下:
protected void GridView1_DataBound(object sender, EventArgs e) { // 定位到分页行 GridViewRow pagerRow = GridView1.BottomPagerRow; if (pagerRow != null) { // 查找首页、上一页按钮,强制设置为可见 LinkButton firstBtn = (LinkButton)pagerRow.Controls[0].Controls[0].Controls[0]; LinkButton prevBtn = (LinkButton)pagerRow.Controls[0].Controls[0].Controls[1]; firstBtn.Visible = true; prevBtn.Visible = true; } }
- 配置错误的处理:修正PagerSettings配置,示例正确配置如下:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="10"> <PagerSettings Mode="NextPreviousFirstLast" FirstPageText="首页" PreviousPageText="上一页" NextPageText="下一页" LastPageText="尾页" /> </asp:GridView>
同时删除后置代码中动态修改PagerSettings.Mode或者对应Text属性的冗余代码。
- 自定义PagerTemplate的处理:要么删除自定义的PagerTemplate节点使用默认渲染逻辑,要么在模板中手动添加对应按钮,示例如下:
<PagerTemplate> <asp:LinkButton runat="server" CommandName="Page" CommandArgument="First">首页</asp:LinkButton> <asp:LinkButton runat="server" CommandName="Page" CommandArgument="Prev">上一页</asp:LinkButton> <asp:LinkButton runat="server" CommandName="Page" CommandArgument="Next">下一页</asp:LinkButton> <asp:LinkButton runat="server" CommandName="Page" CommandArgument="Last">尾页</asp:LinkButton> </PagerTemplate>
- 前端隐藏的处理:修改对应的CSS样式或者JS脚本,移除隐藏分页按钮的逻辑即可。
内容的提问来源于stack exchange,提问作者reff
相关产品推荐
相关产品推荐

