原理比较简单,
就是利用GridView 在RowCreated事件上做个手脚,
当if (e.Row.RowType == DataControlRowType.Pager) 时
加入几个Button 和Label 之后再给他们写个事件就ok了
当然我觉得最有意思的就是最后的pager里面的对象嵌套。。。
拉出来一句
e.Row.Controls[0].Controls[0].Controls[0].Controls[0].Controls.AddAt(0, (Button_IndexFirst));
其中各个对象的含义,这里只做个参考给大家
Pannel对象->Table对象->TableRow对象->TableCell对象 恩 貌似是这样的。
雕虫小技,以博众高手一笑
以下是代码
//注意:GridView 必须开启分页功能,并启用RowCreated 事件
C#
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
#region 翻页绑定
if (e.Row.RowType == DataControlRowType.Pager)
{
Label label_Index = new Label();
LinkButton Button_IndexFirst = new LinkButton();
LinkButton Button_IndexLast = new LinkButton();
LinkButton Button_IndexNext = new LinkButton();
LinkButton Button_IndexPrevious = new LinkButton();
Button_IndexFirst.Text = "第一页 ";
Button_IndexFirst.CommandName = "first";
Button_IndexFirst.ForeColor = Color.White;
Button_IndexFirst.Click +=new EventHandler(PageButtonClick);
Button_IndexNext.Text = " 下一页 ";
Button_IndexNext.CommandName = "next";
Button_IndexNext.ForeColor = Color.White;
Button_IndexNext.Click += new EventHandler(PageButtonClick);
Button_IndexPrevious.Text = "前一页 ";
Button_IndexPrevious.CommandName = "previous";
Button_IndexPrevious.ForeColor = Color.White;
Button_IndexPrevious.Click += new EventHandler(PageButtonClick);
Button_IndexLast.Text = "最末页 ";
Button_IndexLast.CommandName = "last";
Button_IndexLast.ForeColor = Color.White;
Button_IndexLast.Click += new EventHandler(PageButtonClick);
label_Index.Text ="当前为第" + (GridView1.PageIndex + 1) + "页,共有"+((GridView)sender).PageCount+"页";
e.Row.Controls[0].Controls[0].Controls[0].Controls[0].Controls.AddAt(0, (Button_IndexFirst));
e.Row.Controls[0].Controls[0].Controls[0].Controls[0].Controls.AddAt(1, (Button_IndexPrevious));
int controlTmp = e.Row.Controls[0].Controls[0].Controls[0].Controls.Count-1;
e.Row.Controls[0].Controls[0].Controls[0].Controls[controlTmp].Controls.Add(Button_IndexNext);
e.Row.Controls[0].Controls[0].Controls[0].Controls[controlTmp].Controls.Add(Button_IndexLast);
e.Row.Controls[0].Controls[0].Controls[0].Controls[controlTmp].Controls.Add(label_Index);
//e.Row.Controls[0].Controls.Add(label_Index);
}
#endregion
}
protected void PageButtonClick(object sender, EventArgs e)
{
LinkButton clickedButton = ((LinkButton)sender);
if (clickedButton.CommandName == "first")
{
GridView1.PageIndex = 0;
}
else if (clickedButton.CommandName == "next")
{
if (GridView1.PageIndex < GridView1.PageCount - 1)
{
GridView1.PageIndex += 1;
}
}
else if (clickedButton.CommandName == "previous")
{
if (GridView1.PageIndex >= 1)
{
GridView1.PageIndex -= 1;
}
}
else if (clickedButton.CommandName == "last")
{
GridView1.PageIndex = GridView1.PageCount - 1;
}
}
分享到:
相关推荐
【ASP.NET编程知识】asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页.docx
实现gridview分页,上一页,下一页,首页,尾页,go到指定页,使用sql server数据库
主要介绍了asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页,可使用上下键选中行,选中后点击修改,textbox获得gridview中的代码的数据,需要的朋友可以参考下
3.分页模版包含首页,上一页,下一页,尾页,跳转到某页 4.Gridview内嵌套Checkbox 5.Checkbox用javascript控制全选 6.分页,跳到下一页,记录上一页面Checkbox选中状态 7.清除Checkbox选中状态 8.跳转页面,传参选...
GridView的自带分页 自定制分页 首页 上一页 下一页 末页 当前第几页 共几页
实现gridview的分布功能,上一页,下一页,首页,最后一页 实现sql数据库的连接功能,代码是自己做项目时的类,完全正确!
分页 :分为第一页,下一页,上一页 尾页 当前是第几页,跳转到 几页 GO 基本是这样显示的
C# Winform+devexpress 实现分页功能,上一页,下一页,最前页,最后一页,总记录数,总页数功能,带功能描述文件:WinformPager_Help.CHM
GridView预定义的分页页码显示,比较简单,而实际应用中,分页可能不是只显示首页,上一页,下一页,末页,或者是数字的页码那么简单,应该更需要,跳转,当前的页码,总页数等,更详尽的信息。
GridView显示海量数据时效率极其低,每次要从数据库从取出海量数据,这明显不现实。 显示多少,就从数据库中读取多少数据,即每次取GridView显示的一个页面数据,点击下一页是,再取下一页相应的数据。
该demo是一个gridview异步加载本地图片的例子。而且改实例中向上滚动的时候会加载下一页的数据(类似于分页)。
实现了三大控件的分页,包括上一页下一页第一页最后一页跳转到第几页 项目没有解决方案,下载之后打开vs2005打开网站选择解压后的文件夹运行就可以了 如果不行 看看 删掉sln文件 然后打开vs 新建-->打开网站
显示总记录数、每页记录数、当前页数、总页数、首页、上一页、下一页、末页和分页按钮 扩展DropDownList控件和ListBox控件- 支持分组功能(optgroup标签) DropDownList(ListBox)控件既强大又好用。为了让它更强大、...
3、本控件支持:上一页,下一页模式分页以及数字分页。 4、控件支持DataTable数据源和List泛型类数据源绑定。 5、每页显示的数量以及显示的页码数量和样式用户可以完全自定义。 6、页面使用方法参见:Help.txt文档。
属性:上一页 下一页 末页 4.DateList Repeater GridView DetailView ViewState 的应用 DataList Repeater 的分页功能(1)代码编写 (2)PageDateSource()类 5.购物车: 添加新表,修改TemporyCart表 在...