目录
【接上文】
经过美化,GridView的外观已经不错了,只是分页方面还过于简单。本期重点解决分页相关的内容,计划实现:导航链接翻页与输入页号跳转。
一、启用分页
打开GridView编辑菜单,确保“启动分页”是选中状态

或者在控件属性窗口中,AllowPaging的属性为True

二、修改GridView分页模板
1.进入控件模板修改视图:
控件编辑菜单→编辑模板

2.进入页码模板(PagerTemplate)视图

3.添加导航按钮控件
工具箱→标准→LinkButton→拖入PagerTemplate视图

4.修改导航控件属性

四个按钮均需如此设置:
Text |
首页 |
上页 |
下页 |
末页 |
ID |
lbtnFirst |
lbtnPrev |
lbtnNext |
lbtnLast |
CausesValidation |
False |
False |
False |
False |
CommandArgument |
First |
Prev |
Next |
Last |
CommandName |
Page |
Page |
Page |
Page |
ToolTip |
跳转至第一页 |
跳转至上一页 |
跳转至下一页 |
跳转至最后一页 |
最终产生的源代码如下:

页面效果:

测试导航跳转正常
三、输入页号跳转
1.进入页码模板视图

2.添加文本框及按钮控件

控件属性:
控件 |
id |
width |
text |
CssClass |
CommandName |
文本框 |
txtNewPageIndex |
32px |
<%# GridView1.PageIndex+1 %> |
form-text text-center align-middle m-0 ml-4 |
|
按钮 |
btnGo |
48px |
Go |
btn btn-primary btn-sm m-1 |
Go |
CssClass请参考Bootstrap文档
文本框的text值,绑定自GridView控件的当前页码;按钮发出一个“Go”的命令
3.编写代码
双击按钮,给按钮添加单击事件,代码如下:
-
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
-
{
-
//获取文本框,因为它位于GridView内部,因此需要特殊手段
-
TextBox textbox = this.GridView1.BottomPagerRow.Cells[0].FindControl("txtNewPageIndex") as TextBox;
-
switch (e.CommandName)//根据命令发实现功能
-
{
-
case "Select": //参考前例
-
this.GridView1.Visible = false;//隐藏GridView
-
this.panDetails.Visible = true;//显示”操作”面板
-
break;
-
case "Go": //按钮
-
try
-
{
-
//设定当前页码,实现跳转
-
this.GridView1.SetPageIndex(int.Parse(textbox.Text) - 1);//页号从0起始
-
}
-
catch
-
{
-
//输入大于小于实际页码不会报错,这里主要预防输入的字符
-
Response.Write("<script>alert(\"输入页码错误!\");</script>");
-
}
-
break;
-
default:
-
break;
-
}
-
}
代码解读
最终效果:

至此,分页进阶完成,不过还有很多问题没解决,请看下期《分页增强》
文章结束。创作图文不易,感谢点赞支持,欢迎收藏、关注我后期文章。