分页如何实现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

RackNerd美国大硬盘服务器促销:120G SSD+192TB HDD,1Gbps大带宽,月付$599,促销美国月付$服务器促销带宽

racknerd怎么样?racknerd最近发布了一些便宜美国服务器促销,包括大硬盘服务器,提供120G SSD+192TB HDD,有AMD和Intel两个选择,默认32G内存,1Gbps带宽,每个月100TB流量,5个IP地址,月付$599。价格非常便宜,需要存储服务器的朋友可以关注一下。RackNerd主要经营美国圣何塞、洛杉矶、达拉斯、芝加哥、亚特兰大、新泽西机房基于KVM虚拟化的VPS、...

印象云七夕促销,所有机器7折销售,美国CERA低至18元/月 年付217元!

印象云,成立于2019年3月的商家,公司注册于中国香港,国人运行。目前主要从事美国CERA机房高防VPS以及香港三网CN2直连VPS和美国洛杉矶GIA三网线路服务器销售。印象云香港三网CN2机房,主要是CN2直连大陆,超低延迟!对于美国CERA机房应该不陌生,主要是做高防服务器产品的,并且此机房对中国大陆支持比较友好,印象云美国高防VPS服务器去程是163直连、三网回程CN2优化,单IP默认给20...

新加坡云服务器 1核2Gg 46元/月 香港云服务器 1核2G 74元/月 LightNode

LightNode是一家成立于2002年,总部位于香港的VPS服务商。提供基于KVM虚拟化技术.支持CentOS、Ubuntu或者Windows等操作系统。公司名:厦门靠谱云股份有限公司官方网站:https://www.lightnode.com拥有高质量香港CN2 GIA与东南亚节点(河内、曼谷、迪拜等)。最低月付7.71美金,按时付费,可随时取消。灵活满足开发建站、游戏应用、外贸电商等需求。首...

gridview分页为你推荐
简体翻译成繁体有什么将简体中文翻译成繁体中文的网站啊怎么在qq空间里添加背景音乐怎么在QQ空间里免费添加背景音乐????ghostxp3ghost xp sp3 和 windows xp3有啥区别ejb开发什么是ejb?ios系统ios系统的手机有哪些?小米手柄小米蓝牙游戏手柄怎么连接游戏srv记录exchange 2010 自动发现需不需要srv记录域名库求解:请将您的域名:别名(CNAME)主机解析到idc1.xiaodoutao.com去鼠标加速度去鼠标加速到底有什么好处.......263企业邮箱设置ipad mini2怎么设置263企业邮箱
新网域名 cn域名 国外域名 高防服务器租用选锐一 双线主机租用 鲁诺vps 免费申请网站域名 免费二级域名申请 万网免费域名 云全民 最好的免费空间 91vps adroit 美国堪萨斯 linux使用教程 如何建立邮箱 drupal安装 空间首页登陆 网站加速软件 linode支付宝 更多