GridView简单手动分页取代了GridView控件只带的分页功能手动分页用起来更加灵活也很简单;
自己测试没有用到数据库用TextFile.text代替,代码也不优质,希望能给初学者一些帮助,我也在学习当中
希望大家交流,如果你用到连接数据库做手动分页,有那些问题给我留言:
提示:代码可以完全复制,但要添加文本文件TextFile.text内容自己定义(多写点·有换行)

1.页面设计
<%@ Page Language="C#" CodeFile="paging.aspx.cs" Inherits="paging" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>GridView手动简单分页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server">
<PagerSettings Visible="False" />
<Columns>
<asp:TemplateField ConvertEmptyStringToNull="False" InsertVisible="False"
ShowHeader="False" Visible="False"></asp:TemplateField>
<asp:BoundField ConvertEmptyStringToNull="False" HtmlEncode="False"
HtmlEncodeFormatString="False" InsertVisible="False" ShowHeader="False"
Visible="False" />
</Columns>
</asp:GridView>
<div>
</div>
<asp:TextBox ID="TextBox3" runat="server" ontextchanged="TextBox3_TextChanged"></asp:TextBox>
<div id="fanye" runat="server"></div>
第<asp:TextBox ID="TextBox1" runat="server" Height="16px" Width="16px"></asp:TextBox>页:<asp:Button
ID="Button1" runat="server" onclick="Button1_Click" Text="首页" />
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="上一页" />
<asp:Button ID="Button3" runat="server" onclick="Button3_Click" Text="下一页" />
<asp:Button ID="Button4" runat="server" onclick="Button4_Click" Text="尾页" />
<asp:Button ID="Button5" runat="server" onclick="Button5_Click" Text="跳转"
style="width: 40px" />
<asp:TextBox ID="TextBox2" runat="server" Width="20px"></asp:TextBox>
页<br />
<br />
</div>
</form>
</body>
</html>
2.后台代码
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;
public partial class paging : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
绑定();
Response.Write(GridView1.PageIndex + "<br>");
}
添加页码();
}
public void 添加页码()
{
for (int i = 1; i <= GridView1.PageCount; i++)
{
Button btn = new Button();
btn.ID = "btnn" + i;
btn.Text = i.ToString();
btn.Click += new EventHandler(fanyeanniu);
fanye.Controls.Add(btn);
}
}
protected void fanyeanniu(object sender, EventArgs e)
{
GridView1.PageIndex = Convert.ToInt32(((Button)(sender)).Text) - 1;
Response.Write(GridView1.PageIndex + "<br>");
绑定();
}
//绑定数据()
public void 绑定()
{
string[] yhlb = File.ReadAllLines(Server.MapPath("TextFile.txt"));//读取TextFile.txt中的数据放到一个yhlb的数组中(yhlb随便写)
GridView1.AllowPaging = true;//把GridView控件分页设为true
GridView1.PageSize = 2;//每2行数据分为一页
int ym = GridView1.PageIndex;
TextBox1.Text = (ym + 1).ToString();//在TextBox1里显示当前页数
GridView1.DataSource = yhlb;//把数组中的数据放入GridView的数据源
GridView1.DataBind();//绑定数据
}
protected void Button1_Click(object sender, EventArgs e)
{
GridView1.PageIndex = 0;//首页
绑定();
}
//上一页
protected void Button2_Click(object sender, EventArgs e)
{
int dqy = Convert.ToInt32(TextBox1.Text);//调取TextBox1的当前页数放到dqy变量中(dqy随便写)
if (dqy >= 2)
{
GridView1.PageIndex = (dqy - 2);
}
绑定();
}
//下一页
protected void Button3_Click(object sender, EventArgs e)
{
int dqy = Convert.ToInt32(TextBox1.Text);//调取TextBox1的当前页数放到dqy变量中(dqy随便写)
if (dqy < GridView1.PageCount)
{
GridView1.PageIndex = (dqy);
}
绑定();
}
//尾页
protected void Button4_Click(object sender, EventArgs e)
{
GridView1.PageIndex = GridView1.PageCount - 1;
绑定();
}
//跳转到那一页
protected void Button5_Click(object sender, EventArgs e)
{
if (TextBox2.Text != "")//如果TextBox2以有值就跳转到这一页
{
int tzy = Convert.ToInt32(TextBox2.Text);
if (tzy > 0 && tzy <= GridView1.PageCount)//条件是大于0小于PageCount也就是最大页
{
GridView1.PageIndex = tzy - 1;
}
}
绑定();
}
protected void TextBox3_TextChanged(object sender, EventArgs e)
{
TextBox3.Text = "1";
}
}