分页GRIDVIEW两种分页代码

gridview分页  时间:2021-02-11  阅读:()

第一种分页

A.aspx文件

<%@ Page Language="C#" CodeFile="真分页.aspx.cs" Inherits="_Default" %><!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>自定义代码实现真分页</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:GridView ID="GridView1" runat="server">

</asp:GridView>

<br />

共有记录<asp:Label ID="lblrecordamount" runat="server" BackColor="White"ForeColor="Red"></asp:Label>条&nbsp;每页显示<asp:Label

ID="lblpagesize" runat="server" BackColor="White"ForeColor="Red"></asp:Label>条<br />

共有<asp:Label ID="lblpagecount" runat="server" BackColor="White"

ForeColor="Red"></asp:Label>页&nbsp; 当前是第<asp:Label

ID="lblcurpageindex" runat="server" BackColor="White"ForeColor="Red"></asp:Label>页<br />

<br />

<asp:LinkButton ID="lbFirst" runat="server" CommandName="first"OnCommand="lbLast_Command">首页</asp:LinkButton>&nbsp;

<asp:LinkButton ID="lbPrev" runat="server" CommandName="prev"OnCommand="lbLast_Command">上一页</asp:LinkButton>

&nbsp;

<asp:LinkButton ID="lbNext" runat="server" CommandName="next"OnCommand="lbLast_Command">下一页</asp:LinkButton>&nbsp;

<asp:LinkButton ID="lbLast" runat="server" CommandName="last"OnCommand="lbLast_Command"> 尾 页 </asp:LinkButton>&nbsp; 直 接 跳 转 到<asp:DropDownList

ID="ddl" runat="server"OnSelectedIndexChanged="ddl_SelectedIndexChanged">

</asp:DropDownList>页</div>

</form>

</body>

</html>

A.aspx.cs文件using System;using System.Data;

using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page

{private int recordamount = 0; //表中的记录总数private int pagesieze = 5; //每页显示多少条记录private int pagecount = 0; //共需要分多少页private int curpageindex = 0; //当前是第几页protected void Page_Load(object sender, EventArgs e)

{

//第一次请求该页时初始化recordamount、 pagesieze、 pagecount这3个值这3个值在以后的显示中都不会改变if (!this. IsPostBack)

{

SqlDataSource ds = new SqlDataSource() ;

ds.ConnectionString

= ConfigurationManager.ConnectionStrings["gvdb"] .ConnectionString;ds.SelectCommand = "select count(*) from stuinfo";

DataView dv = (DataView)ds.Select(DataSourceSelectArguments.Empty) ;int count = int.Parse(dv[0] [0] .ToString() ) ;

//初始化表中的记录总数recordamount = count;

//初始化总页数if (recordamount % pagesieze == 0)

{pagecount = recordamount / pagesieze;

}else

{pagecount = recordamount / pagesieze + 1 ;

}

//第一次浏览该页面时显示第一页所以当前页就是第一页curpageindex = 1 ;

//用Label记下这4个变量的值这样这4个变量的值就可以在服务器和浏览器端来回传递而不需要每次显示时都计算一遍this. lblrecordamount.Text = recordamount.ToString() ;

this. lblpagesize.Text = pagesieze.ToString() ;this. lblpagecount.Text = pagecount.ToString() ;this. lblcurpageindex.Text = curpageindex.ToString() ;

//初始化DropDownList1for (int i = 1 ; i <= pagecount; i++)

{this.ddl. Items.Add(i.ToString() ) ;

}

//由于4个参数的值已经确定那么要显示的记录是从几到几就都确定了这时候直接显示就可以了

ShowInfo() ;

}

//与应用程序不同的地方是此处一定要把当前页面的索引值和分页总数的值存储起来 因为//网页跳转过程中跳转入口的不确定性后面随时要用到所以必须单独存储。

//curpageindex、 pagecount这2个值在“首页、上一页、下一页、尾页”这4个按钮的事件中需要使用所以应该在每次加载时都为这2个参数赋值curpageindex = int.Parse(this. lblcurpageindex.Text) ;pagecount = int.Parse(this. lblpagecount.Text) ;

}

//根据4个变量来显示数据的方法

public void ShowInfo()

{

SqlDataSource ds = new SqlDataSource() ;ds.ConnectionString =ConfigurationManager.ConnectionStrings["gvdb"] .ConnectionString;ds.SelectCommand = "proc_stuinfopage";ds.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;

//为存储过程的2个参数赋值int start = pagesieze * (curpageindex - 1) + 1 ;int end = pagesieze * curpageindex;ds.SelectParameters.Add("startindex", start.ToString() ) ;ds.SelectParameters.Add("endindex", end.ToString() ) ;

DataView dv = (DataView)ds.Select(DataSourceSelectArguments.Empty) ;this.GridView1.DataSource = dv;this.GridView1.AutoGenerateColumns = true;this.GridView1.DataBind() ;

//改变当前是第几页这个Label的标签this. lblcurpageindex.Text = curpageindex.ToString() ;

//实现ddl同步this.ddl.SelectedValue = curpageindex.ToString() ;//设置按钮的可用性if (curpageindex == 1)

{this. lbFirst.Enabled = false;this. lbPrev.Enabled = false;

}else

{this. lbPrev.Enabled = true;this. lbFirst.Enabled = true;

}if (curpageindex == pagecount)

{this. lbLast.Enabled = false;this. lbNext.Enabled = false;

}else

{

this. lbNext.Enabled = true;this. lbLast.Enabled = true;

}

}

// “首页、上一页、下一页、尾页”这4个按钮的事件处理程序共用一个事件处理程序protected void lbLast_Command(object sender, CommandEventArgs e)

{if (e.CommandName == "f irst") //首页就是将当前页设为1

{curpageindex = 1 ;

}else if (e.CommandName == "next") //下一页就是当前页+1

{curpageindex++;

}else if (e.CommandName == "prev") //上一页就是当前页-1

{curpageindex--;

}

else if (e.CommandName == "last") //尾页就是当前页=总页数也就是最后一页

{curpageindex = pagecount;

}

//显示数据

ShowInfo() ;

}protected void ddl_SelectedIndexChanged(object sender, EventArgs e)

{string a = this.ddl.SelectedValue;curpageindex = int.Parse(a) ;

ShowInfo() ;

}

}

代码简析看效果图就可以看出这种分页是在GridVi ew外部分页 且其绑定对象是SqlDataSource因此它的分页代码是在GridView外写代码相对叫简单但确定是效果图看上去不是那么美观。其主要实现过程是

1. 实例化4个存储变量 以分别存储表中的记录总数每页显示多少条记录共需要分多少页 当前是第几页

2. 在页面加载时 同步初始化以上4个变量并将其值用相应的label标签显示出来。如此同时初始化DropDownList1 即通过循环把分页总数依次加载到下拉列表种。然后就调用ShowInfo()方法将分页后的信息显示到GridView中。

旅途云(¥48 / 月),雅安高防4核4G、洛阳BGP 2核2G

公司成立于2007年,是国内领先的互联网业务平台服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前,旅途云公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务,拥有丰富的国内BGP、双线高防、香港等优质的IDC资源。点击进入:旅途云官方网商家LOGO优惠方案:CPU内存硬盘带宽/流量/防御...

腾讯云轻量服务器老用户续费优惠和老用户复购活动

继阿里云服务商推出轻量服务器后,腾讯云这两年对于轻量服务器的推广力度还是比较大的。实际上对于我们大部分网友用户来说,轻量服务器对于我们网站和一般的业务来说是绝对够用的。反而有些时候轻量服务器的带宽比CVM云服务器够大,配置也够好,更有是价格也便宜,所以对于初期的网站业务来说轻量服务器是够用的。这几天UCLOUD优刻得香港服务器稳定性不佳,于是有网友也在考虑搬迁到腾讯云服务器商家,对于轻量服务器官方...

美国云服务器 1核 1G 30M 50元/季 兆赫云

【双十二】兆赫云:全场vps季付六折优惠,低至50元/季,1H/1G/30M/20G数据盘/500G流量/洛杉矶联通9929商家简介:兆赫云是一家国人商家,成立2020年,主要业务是美西洛杉矶联通9929线路VPS,提供虚拟主机、VPS和独立服务器。VPS采用KVM虚拟架构,线路优质,延迟低,稳定性强。是不是觉得黑五折扣力度不够大?还在犹豫徘徊中?这次为了提前庆祝双十二,特价推出全场季付六折优惠。...

gridview分页为你推荐
google竞价排名google关键字广告和百度排名有什么区别,又有什么相同点?天天酷跑刷积分教程天天酷跑积分怎么获得 天天酷跑刷积分方法中国论坛大全中国十大网站是?网站营运网站运营要学些什么?微信怎么看聊天记录微信在手机上怎么查看聊天记录网站地图制作网站地图 怎么制作?中国杀毒软件排行榜中国杀软排名office2007简体中文版到目前为止OFFICE都有哪些版本(简体中文版)?南北互通为何会出现网络的南北互通问题淘宝软文范例在淘宝上卖文案软文的一般都是什么人,指着这笔收入活不下去吧,收入一般怎么样啊?
域名服务器 备案未注册域名 域名备案批量查询 火山主机 187邮箱 256m内存 私人服务器 lamp配置 天互数据 河南移动邮件系统 域名接入 流量计费 河南移动m值兑换 电信虚拟主机 万网空间购买 香港亚马逊 google台湾 什么是web服务器 双11促销 锐速 更多