分页如何实现GridView的手动分页

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

如何实现GridView的手动分页

我们可以这样做。先要在Html界面中GridView中增加AllowPaging="True"接着做下面的

//在page_load事件中将GridView绑定数据库protected void Page_Load(object sender, EventArgs e)

{string sqlstr=select * from TABLE;sqlconnection conn=new sqlconnection("数据库连接字串") ;

DataSet mydataset = new DataSet() ;

SqlDataAdapter myds = new SqlDataAdapter() ;myds.SelectCommand = new SqlCommand(sqlstr, conn) ;myds.Fill (mydataset) ;this.GridView1.DataSource = mydataset;mydataset.Dispose() ;myds.Dispose() ;conn.Close() ;conn.Dispose() ;

GridView1.DataBind() ;

}

//GridView有一个PageIndexChanging事件protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

{

GridView1.PageIndex = e.NewPageIndex;

GridView1.DataBind() ;

}

这样就可以实现啦

要使用手动分页前提是GridView没有使用数据源控件(sqldatasource. . . . . )的时候。

请教GridView的手动分页如何实现谢谢!

请教GridView的手动分页(自定义分页)如何实现

比如已知有10000条数据我要GridView的分页功能来显示数据但是自动分页功能需要每次都取出全部的10000条数据这样效率不高

所以就要求只用设置GridView的分页数如1000页(每页10知)  当选择第n页时才从数据库中取出对应的数据请问怎样实现

谢谢!

ASP.NET结合存储过程写的通用搜索分页程序

存储过程改自bigeagle的论坛分页程序。请大家批判  select.aspx

-----------

<%@ Page Language="C#" %>

<%@ import Namespace="System.Data" %>

<%@ import Namespace="System.Data.SqlClient" %>

<script runat="server">protected void Page_Load(Object sender, EventArgs e)

{int intPageNo, intPageSize, intPageCount;intPageSize = 25;if (Request["CurrentPage"]==null)

{intPageNo = 1 ;

}else

{intPageNo = Int32.Parse(Request["CurrentPage"]) ;

}

SqlConnection mySqlConnection = new

SqlConnection("server=(local) ;Database=test;user id=sa;password=") ;SqlCommand mySqlCommand = new

SqlCommand("up_GetTopicList", mySqlConnection) ;mySqlCommand.CommandType = CommandType.StoredProcedure;SqlParameter workParm;

//搜索表字段 以", "号分隔workParm = mySqlCommand.Parameters.Add("@a_TableList",SqlDbType.VarChar, 200) ;mySqlCommand.Parameters["@a_TableList"] .Value =

"OFFERID, type,offertime";

//搜索表名workParm = mySqlCommand.Parameters.Add("@a_TableName",SqlDbType.VarChar, 30) ;mySqlCommand.Parameters["@a_TableName"] .Value = "offer";//搜索条件如"select * from aa where a=1 and b=2 and c=3"

则条件为"where a=1 and b=2 and c=3"workParm = mySqlCommand.Parameters.Add("@a_SelectWhere",SqlDbType.VarChar, 500) ;mySqlCommand.Parameters["@a_SelectWhere"] .Value = "wheretype=' idl' ";

//表主键字段名必须为INT类型workParm =mySqlCommand.Parameters.Add("@a_SelectOrderId", SqlDbType.VarChar, 50) ;mySqlCommand.Parameters["@a_SelectOrderId"] .Value ="offerid";

//排序可以使用多字段排序但主键字段必需在最前面workParm = mySqlCommand.Parameters.Add("@a_SelectOrder",SqlDbType.VarChar, 50) ;mySqlCommand.Parameters["@a_SelectOrder"] .Value = "orderby offerid desc";

//页号workParm = mySqlCommand.Parameters.Add("@a_intPageNo",SqlDbType. Int) ;mySqlCommand.Parameters["@a_intPageNo"] .Value= intPageNo;

//每页显示数workParm = mySqlCommand.Parameters.Add("@a_intPageSize",SqlDbType. Int) ;mySqlCommand.Parameters["@a_intPageSize"] .Value =intPageSize;

//总记录数(存储过程输出参数)workParm = mySqlCommand.Parameters.Add("@RecordCount",SqlDbType. Int) ;workParm.Direction =

ParameterDirection.Output;

//当前页记录数(存储过程返回值)workParm = mySqlCommand.Parameters.Add("RowCount",SqlDbType. Int) ;workParm.Direction = ParameterDirection.ReturnValue;mySqlConnection.Open() ;

Repeater.DataSource =mySqlCommand.ExecuteReader() ;

Repeater.DataBind() ;mySqlConnection.Close() ;

Int32 RecordCount =

(Int32)mySqlCommand.Parameters["@RecordCount"] .Value;Int32 RowCount =

(Int32)mySqlCommand.Parameters["RowCount"] .Value;

LabelRecord.Text = RecordCount.ToString() ;LabelRow.Text = intPageNo.ToString() ;intPageCount = RecordCount/intPageSize;if ( (RecordCount%intPageSize)>0)intPageCount += 1 ;

LabelPage.Text = intPageCount.ToString() ;if (intPageNo>1)

{

HLFistPage.NavigateUrl =

"select.aspx?CurrentPage=1";

HLPrevPage.NavigateUrl =

String.Concat("select.aspx?CurrentPage=", "", intPageNo-1) ;}else

{

HLFistPage.NavigateUrl = "";

HLPrevPage.NavigateUrl = "";

//HLFistPage.Enabled = false;

//HLPrevPage.Enabled = false;

}if (intPageNo<intPageCount)

{

HLNextPage.NavigateUrl =

String.Concat("select.aspx?CurrentPage=", "", intPageNo+1) ;

HLEndPage.NavigateUrl =

String.Concat("select.aspx?CurrentPage=", "", intPageCount) ;}else

{

HLNextPage.NavigateUrl = "";

HLEndPage.NavigateUrl = "";

//HLNextPage.Enabled=false;

//HLEndPage.Enabled=false;

}

}

</script>

<html>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><head>

<link href="/style.css" rel="stylesheet" />

<style type="text/css">

.high { font-family: "宋体"; font-size: 9pt; line-height: 140%}.mid { font-size: 9pt; line-height: 12pt}

. small { font-size: 9pt; line-height: normal}

.TP10_5 {font-size: 14px;line-height: 140%;

}

</style>

<style type="text/css">A:link {

COLOR: #cc6666

}

</style>

</head>

<body>

<form runat="server">

<span class="high"> 第<font color="#CC0000"><asp:Labelid="LabelRow" runat="server"/></font>页|共有<asp:Labelid="LabelPage" runat="server"/>页

| <asp:Label id="LabelRecord" runat="server"/>条信息|

<asp:HyperLink id="HLFistPage" Text="首页"runat="server"/>

| <asp:HyperLink id="HLPrevPage" Text="上一页"runat="server"/>

| <asp:HyperLink id="HLNextPage" Text="下一页"runat="server"/>

| <asp:HyperLink id="HLEndPage" Text="尾页"runat="server"/></span><br>

<asp:Repeater id=Repeater runat="server">

<HeaderTemplate>

<table width="583" border="0" cellspacing="0" cellpadding="0">

<tr>

<td bgcolor="#000000"><table width="100%" border="0"

cellpadding="4" cellspacing="1" class="TP10_5">

<tr bgcolor="#999999">

<td align="center"> <strong><font color="#FFFFFF">订单号</font></strong></td>

<td align="center"> <strong><font color="#FFFFFF">服务项目</font></strong></td>

<td align="center"> <strong><font color="#FFFFFF">预订日期</font></strong></td>

<td align="center"> <strong><font color="#FFFFFF">操作人员</font></strong></td>

<td align="center"> <strong><font color="#FFFFFF">分配状态</font></strong></td>

<td> <div align="center"></div></td>

</tr>

</HeaderTemplate>

<ItemTemplate>

<tr align="center" bgcolor="#FFFFFF" class="small"onMouseOver=' this. style.background="#CCCCCC"'onMouseOut=' this. style.background="#FFFFFF"' >

<td><%# DataBinder.Eval (Container.DataItem,

"offerid") %></td>

<td><%# DataBinder.Eval (Container.DataItem,

"type") %></td>

<td><%# DataBinder.Eval (Container.DataItem,

"offertime") %></td>

<td> </td>

<td> </td>

<td><ahref="javascript:void(window.open(' info.asp?id=<%#

DataBinder.Eval (Container.DataItem, "offerid") %>' , '订单分配

' , 'height=600,width=1000' ) )">订单详情</a></td>

</tr>

</ItemTemplate>

<FooterTemplate>

</table></td>

</tr>

</table>

</FooterTemplate>

</asp:Repeater>

</form>

</body>

</html>

---------------------------------------------------------------------

-----------up_GetTopicList. sql

---------------------------------------------------------------------

-----------

CREATE proc up_GetTopicList

@a_TableList Varchar(200) ,

@a_TableName Varchar(30) ,

@a_SelectWhere Varchar(500) ,

@a_SelectOrderId Varchar(20) ,

@a_SelectOrder Varchar(50) ,

@a_intPageNo int,

@a_intPageSize int,

@RecordCount int OUTPUTas

/*定义局部变量*/declare @intBeginID intdeclare @intEndID intdeclare @intRootRecordCount intdeclare @intRowCount intdeclare @TmpSelect NVarchar(600)

/*关闭计数*/set nocount on

/*求总共根贴数*/select @TmpSelect = ' set nocount on;select @SPintRootRecordCount =count(*) from '+@a_TableName+' '+@a_SelectWhereexecute sp_executesql

@TmpSelect,

N'@SPintRootRecordCount int OUTPUT' ,

@SPintRootRecordCount=@intRootRecordCount OUTPUTselect @RecordCount = @intRootRecordCount

if (@intRootRecordCount = 0) --如果没有贴子则返回零return 0

/*判断页数是否正确*/if (@a_intPageNo - 1) * @a_intPageSize > @intRootRecordCountreturn (-1)

/*求开始rootID*/set @intRowCount = (@a_intPageNo - 1) * @a_intPageSize + 1

/*限制条数*/select @TmpSelect = ' set nocount on;set rowcount

@SPintRowCount;select @SPintBeginID = '+@a_SelectOrderId+' from'+@a_TableName+' '+@a_SelectWhere+' '+@a_SelectOrder

execute sp_executesql

@TmpSelect,

N'@SPintRowCount int,@SPintBeginID int OUTPUT' ,

@SPintRowCount=@intRowCount,@SPintBeginID=@intBeginIDOUTPUT

/*结束rootID*/set @intRowCount = @a_intPageNo * @a_intPageSize

/*限制条数*/select @TmpSelect = ' set nocount on;set rowcount

@SPintRowCount;select @SPintEndID = '+@a_SelectOrderId+' from'+@a_TableName+' '+@a_SelectWhere+' '+@a_SelectOrder

execute sp_executesql

@TmpSelect,

N'@SPintRowCount int,@SPintEndID int OUTPUT' ,

@SPintRowCount=@intRowCount,@SPintEndID=@intEndID OUTPUTif @a_SelectWhere=' ' or @a_SelectWhere IS NULL

select @TmpSelect = ' set nocount off;set rowcount 0;select'+@a_TableList+' from '+@a_TableName+' where '+@a_SelectOrderId+'

between 'elseselect @TmpSelect = ' set nocount off;set rowcount 0;select'+@a_TableList+' from '+@a_TableName+' '+@a_SelectWhere+' and

'+@a_SelectOrderId+' between '

if @intEndID > @intBeginIDselect @TmpSelect = @TmpSelect+'@SPintBeginID and @SPintEndID'+'

'+@a_SelectOrder

elseselect @TmpSelect = @TmpSelect+'@SPintEndID and @SPintBeginID'+''+@a_SelectOrderexecute sp_executesql

@TmpSelect,

N'@SPintEndID int,@SPintBeginID int' ,

@SPintEndID=@intEndID,@SPintBeginID=@intBeginIDreturn(@@rowcount)

--select @@rowcount

GO

spinservers:10Gbps带宽高配服务器月付89美元起,达拉斯/圣何塞机房

spinservers是一家主营国外服务器租用和Hybrid Dedicated等产品的商家,Majestic Hosting Solutions LLC旗下站点,商家数据中心包括美国达拉斯和圣何塞机房,机器一般10Gbps端口带宽,且硬件配置较高。目前,主机商针对达拉斯机房机器提供优惠码,最低款Dual E5-2630L v2+64G+1.6TB SSD月付89美元起,支持PayPal、支付宝等...

VirMach(8元/月)KVM VPS,北美、欧洲

VirMach,成立于2014年的美国IDC商家,知名的低价便宜VPS销售商,支持支付宝、微信、PayPal等方式付款购买,主打美国、欧洲暑假中心产品,拥有包括洛杉矶、西雅图、圣何塞、凤凰城在内的11个数据中心可以选择,可以自由搭配1Gbps、2Gbps、10Gbps带宽端口,有Voxility DDoS高防IP可以选择(500Gbps以上的防御能力),并且支持在控制面板付费切换机房和更换IP(带...

Vinahost - 越南VPS主机商月6美元 季付以上赠送时长最多半年

Vinahost,这个主机商还是第一次介绍到,翻看商家的介绍信息,是一家成立于2008年的老牌越南主机商,业务涵盖网站设计、域名、SSL证书、电子邮箱、虚拟主机、越南VPS、云计算、越南服务器出租以及设备托管等,机房主要在越南胡志明市的Viettle和VNPT数据中心,其中VNPT数据中心对于国内是三网直连,速度优。类似很多海外主机商一样,希望拓展自己的业务,必须要降价优惠或者增加机房迎合需求用户...

gridview分页为你推荐
阿里云系统安卓系统和阿里云系统比较?那个很好?优点缺点?比较一下,最近想买,不知道选哪个系统的。拂晓雅阁?英特尔和AMD有什么区别啊?qq怎么发邮件怎样在QQ上发送邮件?开机滚动条电脑开机有滚动条的画面数据库损坏数据库损坏是怎么回事啊?小米3大概多少钱小米3现在多少钱免费免费建站可以不用钱免费做一个网站吗云挂机有免费的云挂机软件吗?什么是云平台什么是云平台管理软件,一个云平台软件应该具有哪些基本功能blogcn南京明城墙(太平门一带某些地区)的城砖上为什么会有一些小洞(每块砖两个洞洞……)?
asp网站空间 动态域名解析 openv 瓦工 bbr 监控宝 好看的桌面背景图片 南昌服务器托管 有奖调查 qq云端 微软服务器操作系统 能外链的相册 双线asp空间 带宽租赁 云销售系统 asp空间 架设代理服务器 卡巴斯基免费版 qq部落18-3 更多