分页gridview分页系列(精装版)

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

精品文档

GridView分页系列精装版

1 GridVi ew 自带分页 GridView 自带的分页是假分页他每次从数据库把数据全部查询出之后通过分页的算法进行按每页数量进行分页。

分页的属性元素分页功能的实现就是通过对这些属性元素的操作实现的。

//this.GvShow.PageIndex当前页的索引

//this.GvShow.PageCount总共的页数

//this.GvShow.Rows.Count当前页签内的gridview的行数

//this.GvShow.PageSize每页的记录数

//this.GvShow.PageIndex*this.GvShow.rows.count + 1 行索引

设置普通的 GridView分页 属性AllowPaging="True" 、 PageSize="2"设置分页事件onpageindexchanging="GvShow_PageIndexChanging"

后台方法绑定protected void GvShow_PageIndexChanging(object sender, GridViewPageEventArgs e)

{this.GvShow.PageIndex = e.NewPageIndex;

BindView() ;

}

2 自定义样式的GridView自带分页

普通的GridView自带的分页不带样式只是普通的1,2,3等如果希望获取到具有其他分页样式就应该设置<PagerSettingsPosition="TopAndBottom"PageButtonCount="1"/>属性<%--FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PreviousPageText="上一页"--%>

后台访问此属性的实例this.GvShow.PagerSettings.FirstPageText = "首页";this.GvShow.PagerSettings.LastPageText = "尾页";this.GvShow.PagerSettings.NextPageText = "下一页";this.GvShow.PagerSettings.PreviousPageText = "上一页";this.GvShow.PagerSettings.Mode = PagerButtons.NextPreviousFirstLast;

通过<PagerStyle HorizontalAlign="Center" VerticalAlign="Middle" />属性可以设置GRIDVIEW分页的样式

3在<PagerTemplate></PagerTemplate>分页模板中自定义分页的样式虽然微软开辟了这个模板提供给用户类似于自定义分页的功能但这个功能完全还是基于微软的GridView自带的分页进行的 <PagerSettings>属性的Visable的属性必须是true AllowPaging="true"与PageSize="3"属性页都要进行相关的有效设置才可以。 这种情况下的分页可以不使用onpageindexchanging="GvShow_PageIndexChanging"微软自带的分页事件开发自己独立的分页事件与方法即可

范例

前台代码

<asp:GridViewid="GvShow"runat="server"Width="910px"BorderColor="#687BC4"

BorderWidth="1px"PageSize="3"

1欢迎。下载

精品文档

CellPadding="1"HorizontalAlign="Center"BorderStyle="None"AllowPaging="true"

AutoGenerateColumns="False"onpageindexchanging="GvShow_PageIndexChanging"onrowdatabound="GvShow_RowDataBound"Height="132px"onrowcommand="GvShow_RowCommand">

<SelectedRowStyleForeColor="#FFFF99"BackColor="#FFFF99"></SelectedRowStyle>

<AlternatingRowStyleBackColor="#EEF2F1"></AlternatingRowStyle>

<RowStyleBackColor="White"Height="24"></RowStyle>

<HeaderStyleWrap="False"HorizontalAlign="Center"Height="24px"ForeColor="Black"VerticalAlign="Middle"

BackColor="#BFD5FA"></HeaderStyle>

<%--<PagerSettings Position="TopAndBottom" />--%>

<%--FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PreviousPageText="上一页"--%>

<PagerStyleForeColor="White"HorizontalAlign="Center"BackColor="ActiveBorder"Font-Underline="false"/>

<Columns>

<asp:TemplateFieldHeaderText="省份">

<ItemStyleHorizontalAlign="Center"VerticalAlign="Middle"></ItemStyle>

<ItemTemplate>

<asp:LabelID="lblRegionName"runat="server"Text=' <%#Eval ("rname") %>' ></asp:Label>

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateFieldHeaderText="城市">

<ItemStyleHorizontalAlign="Center"VerticalAlign="Middle"></ItemStyle>

<ItemTemplate>

<asp:LabelID="lblCityName"runat="server"Text=' <%#Eval ("cname") %>' ></asp:Label>

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateFieldHeaderText="用户名">

<ItemStyleHorizontalAlign="Center"VerticalAlign="Middle"></ItemStyle>

<ItemTemplate>

<asp:LabelID="lblUserName"runat="server"Text=' <%#Eval ("username") %>' ></asp:Label>

</ItemTemplate>

</asp:TemplateField>

2欢迎。下载

精品文档

</Columns>

<PagerTemplate>

<tablecellSpacing="0"cellPadding="0"width="100%"align="center"border="0">

<tr>

<tdvAlign="middle"align="center">

『<asp: linkbuttonid="cmdbegin"runat="server"CommandName="begin">首页</asp: linkbutton>』

『<asp: linkbuttonid="cmdbefore"runat="server"CommandName="before">上一页

</asp: linkbutton>』

『<asp: linkbuttonid="cmdafter"runat="server"CommandName="after">下一页

</asp: linkbutton>』

『<asp: linkbuttonid="cmdend"runat="server"CommandName="end">尾页</asp: linkbutton>』

</td>

<tdvAlign="middle"align="center">页次

<asp: labelid="txtNowPage"runat="server"ForeColor="red">0</asp: label>/<asp: labelid="txtAllPage"runat="server"ForeColor="red">0</asp: label>页&nbsp;

<asp: labelid="txtTotal"runat="server"ForeColor="red">0</asp: label>条记录&nbsp;

<asp: labelid="txtNowRed"runat="server"ForeColor="red">0</asp: label>条记录/页

</td>

<tdvAlign="top"align="center"><asp:checkboxid="cmdCheck"runat="server"Text="显示数字按钮"AutoPostBack="True"oncheckedchanged="cmdCheck_CheckedChanged"></asp:checkbox></td>

</tr>

</table>

</PagerTemplate>

</asp:GridView>

后台代码namespace GridViewDemo.GridView分页系列

{publicpartialclassGridView自定义分页02 : System.Web.UI.Page

{protectedvoid Page_Load(object sender, EventArgs e)

{if (!IsPostBack)

{

BindView() ;

InitButtons() ;

}

}

3欢迎。下载

精品文档privatevoid BindView()

{

DataTable dt = UserDemoAccess.GetUserSouce() ;

ViewState["RowCounts"] = dt.Rows.Count.ToString() ;this.GvShow.DataSource = dt; ;this.GvShow.DataBind() ;

}protectedvoid GvShow_PageIndexChanging(object sender, GridViewPageEventArgs e)

{this.GvShow.PageIndex = e.NewPageIndex;

BindView() ;

InitButtons() ;

}protectedvoid GvShow_RowDataBound(object sender, GridViewRowEventArgs e)

{if (e.Row.RowType == DataControlRowType.DataRow)

{e.Row.Attributes.Add("onmouseover",

"this. setAttribute('BKC' , this. style.backgroundColor) ;this. style.cursor='default' , this. style.backgroundColor='#ffff99' ") ;e.Row.Attributes.Add("onmouseout",

"this. style.backgroundColor=this.getAttribute('BKC' ) ;") ;

}

//if(e.Row.RowType == DataControlRowType.Pager)

//{

// GridViewRow gr = e.Row;

// //页次--第几页

// Label txtNowPage = gr.FindControl ("txtNowPage") as Label;

// //总页数

// Label txtAllPage = gr.FindControl ("txtAllPage") as Label;

// //总记录数

// Label txtTotal = gr.FindControl ("txtTotal") as Label;

// //条记录/页

// Label txtNowRed = gr.FindControl ("txtNowRed") as Label;

// txtNowPage.Text = (this.GvShow.PageIndex+1) .ToString() ;

// txtAllPage.Text = this.GvShow.PageCount.ToString() ;

// txtTotal.Text = ViewState["RowCounts"] .ToString() ;

4欢迎。下载

精品文档

// txtNowRed.Text = this.GvShow.PageSize.ToString() ;

//}

}protectedvoid cmdCheck_CheckedChanged(object sender, EventArgs e)

{

//CheckBox cmdCheck = this.GvShow.BottomPagerRow.FindControl ("cmdCheck") as CheckBox;//if (cmdCheck.Checked)

//{

// this.GvShow.PagerSettings.Mode = PagerButtons.Numeric;

//}

}protectedvoid GvShow_RowCommand(object sender, GridViewCommandEventArgs e)

{

//控制页签swi tch(e.CommandName)

{case"begin":this.GvShow.PageIndex = 0;

; break;case"before":if(this.GvShow.PageIndex > 0)

{this.GvShow.PageIndex -= 1 ;

}

; break;case"after":if(this.GvShow.PageIndex <this.GvShow.PageCount - 1)

{this.GvShow.PageIndex += 1 ;

}

; break;case"end":this.GvShow.PageIndex = this.GvShow.PageCount-1 ;

; break;

}

//控制按钮

InitButtons() ;

}

5欢迎。下载

精品文档privatevoid InitButtons()

{

//获取gridviewrows的PagerTemplate底部模板

GridViewRow gr = this.GvShow.BottomPagerRow;

LinkButton cmdbegin = gr.FindControl ("cmdbegin") asLinkButton;

LinkButton cmdbefore = gr.FindControl ("cmdbefore") asLinkButton;LinkButton cmdafter = gr.FindControl ("cmdafter") asLinkButton;

LinkButton cmdend = gr.FindControl ("cmdend") asLinkButton;

//页次--第几页

Label txtNowPage = gr.FindControl ("txtNowPage") asLabel;

//总页数

Label txtAllPage = gr.FindControl ("txtAllPage") asLabel;

//总记录数

Label txtTotal = gr.FindControl ("txtTotal") asLabel;

//条记录/页

Label txtNowRed = gr.FindControl ("txtNowRed") asLabel;txtNowPage.Text = (this.GvShow.PageIndex + 1) .ToString() ;txtAllPage.Text = this.GvShow.PageCount.ToString() ;txtTotal.Text = ViewState["RowCounts"] .ToString() ;txtNowRed.Text = this.GvShow.PageSize.ToString() ;cmdbegin.Enabled = false;cmdbefore.Enabled = false;cmdafter.Enabled = false;cmdend.Enabled = false;if(this.GvShow.PageCount > 1)

{cmdbegin.Enabled = true;cmdbefore.Enabled = true;cmdafter.Enabled = true;cmdend.Enabled = true;if(this.GvShow.PageIndex == 0)

{

6欢迎。下载

精品文档cmdbegin.Enabled = false;cmdbefore.Enabled = false;

}elseif(this.GvShow.PageIndex == this.GvShow.PageCount-1)

{cmdafter.Enabled = false;cmdend.Enabled = false;

}

}

}

}

}

此外还可以不利用GridView自带的分页模板标记<PagerTemplate></PagerTemplate>可以在GridView的外部构造一个talbe与gridview对应这样更加灵活也应用于div中的GridView。

前台代码

<tableid="tablePager"runat="server"cellSpacing="0"cellPadding="0"width="100%"align="center"border="0">

<tr>

<tdvAlign="middle"align="center">

『<asp: linkbuttonid="cmdbegin"runat="server"CommandName="begin"OnCommand="PagerButton_Command">首页</asp: linkbutton>』

『<asp: linkbuttonid="cmdbefore"runat="server"CommandName="before"OnCommand="PagerButton_Command">上一页</asp: linkbutton>』

『<asp: linkbuttonid="cmdafter"runat="server"CommandName="after"OnCommand="PagerButton_Command">下一页</asp: l inkbutton>』

『<asp: linkbuttonid="cmdend"runat="server"CommandName="end"OnCommand="PagerButton_Command">尾页</asp: linkbutton>』

</td>

<tdvAlign="middle"align="center">页次

<asp: labelid="txtNowPage"runat="server"ForeColor="red">0</asp: label>/<asp: labelid="txtAllPage"runat="server"ForeColor="red">0</asp: label>页&nbsp;

<asp: labelid="txtTotal"runat="server"ForeColor="red">0</asp: label>条记录&nbsp;

<asp: labelid="txtNowRed"runat="server"ForeColor="red">0</asp: label>条记录/页

</td>

<tdvAlign="top"align="center"><asp:checkboxid="cmdCheck"runat="server"Text="显示数字按

7欢迎。下载

精品文档

钮"AutoPostBack="True"oncheckedchanged="cmdCheck_CheckedChanged"></asp:checkbox></td>

</tr>

</tabl e>

这俩种方式的区别在于适用内部的分页模板标记在触发事件后不用重新绑定GridView这个是由GridView内部的分页机制自动完成的而采用外部构造的方式在执行完之后必须重新绑定gridview因为这个时候的pageIndex等信息已经变化需要重新进行绑定。

后台代码protectedvoid PagerButton_Command(object sender, System.Web.UI.WebControls.CommandEventArgs e)

{swi tch (e.CommandName)

{case"begin":this.GvShow.PageIndex = 0;

; break;case"before":if (this.GvShow.PageIndex > 0)

{this.GvShow.PageIndex -= 1 ;

}

; break;case"after":if (this.GvShow.PageIndex <this.GvShow.PageCount - 1)

{this.GvShow.PageIndex += 1 ;

}

; break;case"end":this.GvShow.PageIndex = this.GvShow.PageCount - 1 ;

; break;

}

//在设置完页签后将数据源重新绑定到GridView中

BindView() ;

InitButtons() ;

}

一个很好样式的假分页功能齐全

前台页面:

<table>

<tr>

<td>

<asp:GridViewid="GvShow"runat="server"Width="910px"BorderColor="#687BC4"

BorderWidth="1px"PageSize="3"

CellPadding="1"HorizontalAlign="Center"BorderStyle="None"AllowPaging="true"

AutoGenerateColumns="False"

8欢迎。下载

精品文档onrowdatabound="GvShow_RowDataBound"Height="132px">

<SelectedRowStyleForeColor="#FFFF99"BackColor="#FFFF99"></SelectedRowStyle>

<AlternatingRowStyleBackColor="#EEF2F1"></AlternatingRowStyle><RowStyleBackColor="White"Height="24"></RowStyle>

<HeaderStyleWrap="False"HorizontalAlign="Center"Height="24px"ForeColor="Black"VerticalAlign="Middle"

BackColor="#BFD5FA"></HeaderStyle>

<PagerStyleForeColor="White"HorizontalAlign="Center"BackColor="ActiveBorder"Font-Underline="false"/>

<PagerSettingsMode="Numeric"Position="Bottom"Visible="false"/><Columns>

<asp:TemplateFieldHeaderText="省份">

<ItemStyleHorizontalAlign="Center"VerticalAlign="Middle"></ItemStyle>

<ItemTemplate>

<asp:LabelID="lblRegionName"runat="server"Text=' <%#Eval ("rname") %>' ></asp:Label>

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateFieldHeaderText="城市">

<ItemStyleHorizontalAlign="Center"VerticalAlign="Middle"></ItemStyle>

<ItemTemplate>

<asp:LabelID="lblCityName"runat="server"Text=' <%#Eval ("cname") %>' ></asp:Label>

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateFieldHeaderText="用户名">

<ItemStyleHorizontalAlign="Center"VerticalAlign="Middle"></ItemStyle>

<ItemTemplate>

<asp:LabelID="lblUserName"runat="server"Text=' <%#Eval ("username") %>' ></asp:Label>

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

</td>

</tr>

<tr>

<td>

9欢迎。下载

陆零(¥25)云端专用的高性能、安全隔离的物理集群六折起

陆零网络是正规的IDC公司,我们采用优质硬件和网络,为客户提供高速、稳定的云计算服务。公司拥有一流的技术团队,提供7*24小时1对1售后服务,让您无后顾之忧。我们目前提供高防空间、云服务器、物理服务器,高防IP等众多产品,为您提供轻松上云、安全防护 为核心数据库、关键应用系统、高性能计算业务提供云端专用的高性能、安全隔离的物理集群。分钟级交付周期助你的企业获得实时的业务响应能力,助力核心业务飞速成...

热网互联33元/月,香港/日本/洛杉矶/韩国CN2高速线路云主机

热网互联怎么样?热网互联(hotiis)是随客云计算(Suike.Cloud)成立于2009年,增值电信业务经营许可证:B1-20203716)旗下平台。热网互联云主机是CN2高速回国线路,香港/日本/洛杉矶/韩国CN2高速线路云主机,最低33元/月;热网互联国内BGP高防服务器,香港服务器,日本服务器全线活动中,大量七五折来袭!点击进入:热网互联官方网站地址热网互联香港/日本/洛杉矶/韩国cn2...

PacificRack - 洛杉矶QN机房 低至年$7.2 同有站群多IP地址VPS主机

需要提前声明的是有网友反馈到,PacificRack 商家是不支持DD安装Windows系统的,他有安装后导致服务器被封的问题。确实有一些服务商是不允许的,我们尽可能的在服务商选择可以直接安装Windows系统套餐,毕竟DD安装的Win系统在使用上实际上也不够体验好。在前面有提到夏季促销的"PacificRack夏季促销PR-M系列和多IP站群VPS主机 年付低至19美元"有提到年付12美元的洛杉...

gridview分页为你推荐
苏州商标注册苏州商标注册怎么办理google竞价排名谷歌是靠什么关键词排名的?谷歌竞价有什么特点?有什么优势?人人时光机寻时光机歌词无线路由器限速设置wifi怎么设置限速天天酷跑刷积分教程天天酷跑积分怎么获得 天天酷跑刷积分方法金山杀毒怎么样金山杀毒怎么样?照片转手绘照片转手绘用什么APP申请证书一、如何申请证书?蘑菇街美丽说蘑菇街美丽说唯品会天猫京东。女生买衣服,哪个好神雕侠侣礼包大全神雕侠侣手游版四重大礼包怎么得到啊?
免费二级域名申请 东莞电信局 服务器评测 老鹰主机 国外私服 免费ftp空间 nerd 网页背景图片 网站实时监控 web服务器架设软件 91vps 免费活动 国外免费asp空间 免费网页空间 空间登陆首页 lick 电信网络测速器 东莞主机托管 实惠 privatetracker 更多