GRIDVIEW两种分页代码.docx

上传人:b****7 文档编号:9997591 上传时间:2023-02-07 格式:DOCX 页数:9 大小:17.03KB
下载 相关 举报
GRIDVIEW两种分页代码.docx_第1页
第1页 / 共9页
GRIDVIEW两种分页代码.docx_第2页
第2页 / 共9页
GRIDVIEW两种分页代码.docx_第3页
第3页 / 共9页
GRIDVIEW两种分页代码.docx_第4页
第4页 / 共9页
GRIDVIEW两种分页代码.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

GRIDVIEW两种分页代码.docx

《GRIDVIEW两种分页代码.docx》由会员分享,可在线阅读,更多相关《GRIDVIEW两种分页代码.docx(9页珍藏版)》请在冰豆网上搜索。

GRIDVIEW两种分页代码.docx

GRIDVIEW两种分页代码

第一种分页

A.aspx文件

<%@PageLanguage="C#"CodeFile="真分页.aspx.cs"Inherits="_Default"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

//www.w3.org/1999/xhtml">

自定义代码实现真分页

GridViewID="GridView1"runat="server">

GridView>


共有记录

LabelID="lblrecordamount"runat="server"BackColor="White"ForeColor="Red">

Label>条 每页显示

Label

ID="lblpagesize"runat="server"BackColor="White"ForeColor="Red">

Label>条

共有

LabelID="lblpagecount"runat="server"BackColor="White"ForeColor="Red">

Label>页 当前是第

Label

ID="lblcurpageindex"runat="server"BackColor="White"ForeColor="Red">

Label>页


LinkButtonID="lbFirst"runat="server"CommandName="first"OnCommand="lbLast_Command">首页

LinkButton> 

LinkButtonID="lbPrev"runat="server"CommandName="prev"OnCommand="lbLast_Command">上一页

LinkButton>

 

LinkButtonID="lbNext"runat="server"CommandName="next"OnCommand="lbLast_Command">下一页

LinkButton> 

LinkButtonID="lbLast"runat="server"CommandName="last"OnCommand="lbLast_Command">尾页

LinkButton> 直接跳转到

DropDownList

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

DropDownList>页

A.aspx.cs文件

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

publicpartialclass_Default:

System.Web.UI.Page

{

privateintrecordamount=0;//表中的记录总数

privateintpagesieze=5;//每页显示多少条记录

privateintpagecount=0;//共需要分多少页

privateintcurpageindex=0;//当前是第几页

protectedvoidPage_Load(objectsender,EventArgse)

{

//第一次请求该页时初始化recordamount、pagesieze、pagecount这3个值,这3个值在以后的显示中都不会改变

if(!

this.IsPostBack)

{

SqlDataSourceds=newSqlDataSource();

ds.ConnectionString

=ConfigurationManager.ConnectionStrings["gvdb"].ConnectionString;

ds.SelectCommand="selectcount(*)fromstuinfo";

DataViewdv=(DataView)ds.Select(DataSourceSelectArguments.Empty);

intcount=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();

//初始化DropDownList1

for(inti=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个变量来显示数据的方法

publicvoidShowInfo()

{

SqlDataSourceds=newSqlDataSource();

ds.ConnectionString=ConfigurationManager.ConnectionStrings["gvdb"].ConnectionString;

ds.SelectCommand="proc_stuinfopage";

ds.SelectCommandType=SqlDataSourceCommandType.StoredProcedure;

//为存储过程的2个参数赋值

intstart=pagesieze*(curpageindex-1)+1;

intend=pagesieze*curpageindex;

ds.SelectParameters.Add("startindex",start.ToString());

ds.SelectParameters.Add("endindex",end.ToString());

DataViewdv=(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个按钮的事件处理程序,共用一个事件处理程序

protectedvoidlbLast_Command(objectsender,CommandEventArgse)

{

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

{

curpageindex=1;

}

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

{

curpageindex++;

}

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

{

curpageindex--;

}

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

{

curpageindex=pagecount;

}

//显示数据

ShowInfo();

}

protectedvoidddl_SelectedIndexChanged(objectsender,EventArgse)

{

stringa=this.ddl.SelectedValue;

curpageindex=int.Parse(a);

ShowInfo();

}

}

代码简析:

看效果图就可以看出这种分页是在GridView外部分页,且其绑定对象是SqlDataSource因此它的分页代码是在GridView外写代码,相对叫简单,但确定是效果图看上去不是那么美观。

其主要实现过程是:

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

2.在页面加载时,同步初始化以上4个变量并将其值用相应的label标签显示出来。

如此同时,初始化DropDownList1,即通过循环把分页总数依次加载到下拉列表种。

然后就调用ShowInfo()方法将分页后的信息显示到GridView中。

3.ShowInfo()方法解释:

主要是通过一个存储过程获得相应的显示信息。

该存储过程需要2个参数,一个是信息的起始编号,另一个是信息的结束编号。

它们由页面信息条数和当前页面索引共同决定。

每次信息加载后要顺便更新对应的页面索引。

同时也可以在此方法中定义相应按钮的可用性。

4.“首页、上一页、下一页、尾页”这4个按钮的事件处理程序,可以共用一个事件处理程序。

只需将这4个按钮的CommandName属性值依次赋值为first,prev,next,last,然后在Command事件中写相应代码即可。

5.为了使用户使用更方便,有必要给DropDownList1写事件,即ddl_SelectedIndexChanged事件,它的实现很简单,主要是给ddl赋值,然后调用ShowInfo()方法。

值得注意的是在实现此事件时必须把DropDownList1的“启用AutoPostBack”给勾选上,不然该事件无法实现。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1