GridView 分页
来源:互联网 发布:双十一淘宝真的便宜吗 编辑:程序博客网 时间:2024/05/07 11:01
原理比较简单,
就是利用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;
}
}
VB.NET
#Region "翻页绑定"
Private Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
If e.Row.RowType = DataControlRowType.Pager Then
Dim label_Index As New Label()
Dim Button_IndexFirst As New LinkButton()
Dim Button_IndexLast As New LinkButton()
Dim Button_IndexNext As New LinkButton()
Dim Button_IndexPrevious As New LinkButton()
Button_IndexFirst.Text = "第一页 "
Button_IndexFirst.CommandName = "first"
Button_IndexFirst.ForeColor = Color.White
' Button_IndexFirst.e += New EventHandler(PageButtonClick)
AddHandler Button_IndexFirst.Click, AddressOf PageButtonClick
Button_IndexNext.Text = " 下一页 "
Button_IndexNext.CommandName = "next"
Button_IndexNext.ForeColor = Color.White
' Button_IndexNext.Click += New EventHandler(AddressOf PageButtonClick)
AddHandler Button_IndexNext.Click, AddressOf PageButtonClick
Button_IndexPrevious.Text = "前一页 "
Button_IndexPrevious.CommandName = "previous"
Button_IndexPrevious.ForeColor = Color.White
' Button_IndexPrevious.Click += New EventHandler(AddressOf PageButtonClick)
AddHandler Button_IndexPrevious.Click, AddressOf PageButtonClick
Button_IndexLast.Text = "最末页 "
Button_IndexLast.CommandName = "last"
Button_IndexLast.ForeColor = Color.White
' Button_IndexLast.Click += New EventHandler(AddressOf PageButtonClick)
AddHandler Button_IndexLast.Click, AddressOf PageButtonClick
label_Index.Text = ("当前为第" & (GridView1.PageIndex + 1) & "页,共有") + DirectCast(sender, GridView).PageCount.ToString & "页"
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))
Dim controlTmp As Integer = 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.Add(label_Index);
e.Row.Controls(0).Controls(0).Controls(0).Controls(controlTmp).Controls.Add(label_Index)
End If
End Sub
#End Region
Protected Sub PageButtonClick(ByVal sender As Object, ByVal e As EventArgs)
Dim clickedButton As LinkButton = DirectCast(sender, LinkButton)
If clickedButton.CommandName = "first" Then
GridView1.PageIndex = 0
ElseIf clickedButton.CommandName = "next" Then
If GridView1.PageIndex < GridView1.PageCount - 1 Then
GridView1.PageIndex += 1
End If
ElseIf clickedButton.CommandName = "previous" Then
If GridView1.PageIndex >= 1 Then
GridView1.PageIndex -= 1
End If
ElseIf clickedButton.CommandName = "last" Then
GridView1.PageIndex = GridView1.PageCount - 1
End If
End Sub
- GridView分页
- GridView分页
- GridView分页
- GridView分页
- GridView 分页
- GridView 分页
- Gridview分页
- Gridview 分页
- gridview 分页
- GridView分页
- Gridview 分页
- GridView分页
- gridview分页
- GridView分页
- Gridview 分页
- GridView 分页
- Gridview 分页
- GridView分页
- DataGridView分页
- 未来就是现在的变化
- .net泛型在构建JSON数据中的应用
- enter submit
- 6个西格玛控制软件质量指标(1)
- GridView 分页
- Ubuntu中JAVA的中文配置
- VS2008中容易遇到的3个问题之解决办法
- 专业架构师,第 1 部分: 开发人员如何成为架构师
- 足球比赛排序
- 图像采集系统的Camera Link标准接口设计
- paraview2种文件调用.lnr文件形成不同图形的区别
- Tab页界面,用jQuery及Ajax技术实现
- Windows绘图函数 - GetPixel