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

NameCheap优惠活动 新注册域名38元

今天上午有网友在群里聊到是不是有新注册域名的海外域名商家的优惠活动。如果我们并非一定要在国外注册域名的话,最近年中促销期间,国内的服务商优惠力度还是比较大的,以前我们可能较多选择海外域名商家注册域名在于海外商家便宜,如今这几年国内的商家价格也不贵的。比如在前一段时间有分享到几个商家的年中活动:1、DNSPOD域名欢购活动 - 提供域名抢购活动、DNS解析折扣、SSL证书活动2、难得再次关注新网商家...

7月RAKsmart独立服务器和站群服务器多款促销 G口不限量更低

如果我们熟悉RAKsmart商家促销活动的应该是清楚的,每个月的活动看似基本上一致。但是有一些新品或者每个月还是有一些各自的特点的。比如七月份爆款I3-2120仅30美金、V4新品上市,活动期间5折、洛杉矶+硅谷+香港+日本站群恢复销售、G口不限流量服务器比六月份折扣力度更低。RAKsmart 商家这个月依旧还是以独立服务器和站群服务器为主。当然也包括有部分的低至1.99美元的VPS主机。第一、I...

杭州王小玉网-美国CERA 2核8G内存19.9元/月,香港,日本E3/16G/20M CN2带宽150元/月,美国宿主机1500元,国内宿主机1200元

官方网站:点击访问王小玉网络官网活动方案:买美国云服务器就选MF.0220.CN 实力 强 强 强!!!杭州王小玉网络 旗下 魔方资源池 “我亏本你引流活动 ” mf.0220.CNCPU型号内存硬盘美国CERA机房 E5 2696v2 2核心8G30G总硬盘1个独立IP19.9元/月 续费同价mf.0220.CN 购买湖北100G防御 E5 2690v2 4核心4G...

gridview分页为你推荐
免费开通黄钻怎样能免费开通黄钻会员flash导航条如何用Flash制作简单的导航栏1433端口1433端口怎么打开网站运营网络运营主管的主要工作职责是什么?怎么点亮qq空间图标怎样点亮qq空间的图标保护气球抖音里面看的,这是什么游戏保护气球如何才能让气球放久了不会没气商标注册查询官网商标注册网的官网是哪个?防钓鱼无线防钓鱼 什么意思主板温度多少正常主板温度多少算正常?
vps租用 vps代理 网易域名邮箱 cn域名个人注册 免费cn域名 加勒比群岛 电影服务器 香港主机 海外服务器 卡巴斯基永久免费版 灵动鬼影 云全民 七夕快乐英文 1g空间 web服务器安全 如何注册阿里云邮箱 国外ip加速器 Updog 环聊 web服务器是什么 更多