原理比较简单,
就是利用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;
}
}
分享到:
相关推荐
例如,可以使用 C# 来实现数据的分页,实现上一页、下一页、第一页、最后一页的跳转逻辑等。 GridView 分页的常见问题 1. 如何实现 GridView 的分页? 2. 如何实现上一页、下一页、第一页、最后一页的跳转逻辑? 3...
4. 监听器:在GridView中添加OnScrollListener,当用户滚动到底部时,触发加载下一页。 ```java gridView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void ...
主要介绍了asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页,可使用上下键选中行,选中后点击修改,textbox获得gridview中的代码的数据,需要的朋友可以参考下
但这意味着,如果用户在某一页选择了Checkbox,然后翻到下一页,之前的选择状态不会被保留,因为新的页面加载会覆盖旧的状态。 为了解决这个问题,我们可以利用ViewState属性。ViewState是一种服务器端的状态管理...
默认情况下,GridView会生成简单的上一页/下一页按钮。但你可以通过修改`PagerSettings`属性来自定义分页样式。例如,显示页码选择器: ```asp <asp:GridView ID="GridView1" runat="server" AllowPaging="true" ...
分页的形式可以显示一组称为“页导航”的控件,例如以数字显示页面链接或“首页/上一页/下一页/最后一页”显示页面链接,用户使用这些控件可以在控件内的页面之间跳转。为了实现这一功能,我们需要利用`...
5. **自定义控件或扩展**:在某些情况下,可能需要创建自定义控件或者扩展默认的GridView功能来实现分页,比如自定义分页栏,包含“上一页”、“下一页”、“跳转到页”等功能。 6. **性能优化**:在处理大量数据时...
在示例代码中,`PagerTemplate`包含了一个表格,用于展示当前页码、总页数以及四个链接按钮(首页、上一页、下一页、末页)。这些按钮的`CommandName`属性设置为`Page`,以便在用户点击时触发`RowCommand`事件。`...
默认情况下,ASPxGridView会显示每页的页码,用户可以通过点击页码或使用导航按钮(上一页、下一页)来切换页面。 2. **自定义每页记录数**: 可以通过`PageSize`属性设置每页显示的记录数。用户也可以选择提供一个...
最后,为了提供“上一页”、“下一页”、“首页”和“尾页”的按钮,可以手动添加这些链接按钮到页面的footer部分,或者在GridView的`PagerSettings`中配置样式和位置。以下是在GridView中自定义分页样式的方式: `...
在Android开发中,GridView是一种常用的布局管理器,它允许我们以网格的形式展示数据,通常用于创建类似相册、应用列表等界面。当我们处理大量数据时,为了提高用户体验和性能,通常会采用分页加载的方式。本篇文章...
1. 分页导航链接:GridView控件默认生成“上一页”、“下一页”链接以及页码链接。可以通过`PagerSettings`属性进行自定义,例如: ```asp <asp:GridView ID="GridView1" runat="server" AllowPaging="true" ...
4. `.gridview-first`、`.gridview-last`、`.gridview-prev`、`.gridview-next`:分别对应“首页”、“末页”、“上一页”和“下一页”的按钮,可以为其设定特殊的图标或样式。 例如,以下是一个简单的CSS代码示例...
在Android开发中,GridView是一种非常常见的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似相册、应用列表等场景。本教程将详细讲解如何实现GridView的分页和滑动效果。 首先,我们需要了解GridView...
在标题"GridView的左右滑动+分页"中,提到的功能是为GridView添加左右滑动以及分页加载数据,这在处理大量数据时非常有用,既能提供良好的用户体验,又能优化性能。 首先,让我们详细讲解如何实现GridView的左右...
"gridview分页效果"是Android开发中的一个重要知识点,主要涉及到如何在GridView中实现数据的分页加载,以提高用户体验并优化性能。 首先,我们需要理解GridView的工作原理。GridView继承自AbsListView,它会根据其...
2. 添加“上一页”、“下一页”按钮:创建两个LinkButton,设置合适的事件处理程序和导航逻辑。 3. 自定义样式:可以通过CSS对GridView的分页栏进行样式定制,以提升用户体验。 总结,实现“最简单的GridView自定义...
此外,还可以自定义分页UI,比如添加上一页、下一页、跳转到指定页的按钮。 批量删除功能可以通过在GridView中添加复选框列实现。每个数据行都包含一个复选框,用户可以选中多个行然后进行批量删除操作。这通常需要...
对于分页,可以使用PagerSettings来配置分页样式,如显示页码数、是否显示“第一”、“上一页”、“下一页”、“最后”按钮等。对于选择记录,可能需要考虑禁用多选(默认是允许多选)或设置行的样式来突出选中状态...
此项目通过自定义分页控件,实现了上一页、下一页、跳转到首页和末页的功能,同时显示总记录数和总页数,这样用户可以轻松浏览和操作大量数据,而无需一次性加载所有数据,提高了应用的性能和用户体验。 `...