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

Megalayer新加坡服务器国际带宽线路测评

前几天有关注到Megalayer云服务器提供商有打算在月底的时候新增新加坡机房,这个是继美国、中国香港、菲律宾之外的第四个机房。也有工单询问到官方,新加坡机房有包括CN2国内优化线路和国际带宽,CN2优化线路应该是和菲律宾差不多的。如果我们追求速度和稳定性的中文业务,建议还是选择CN2优化带宽的香港服务器。这里有要到Megalayer新加坡服务器国际带宽的测试服务器,E3-1230配置20M国际带...

UCloud 618活动:香港云服务器月付13元起;最高可购3年,AMD/Intel系列

ucloud6.18推出全球大促活动,针对新老用户(个人/企业)提供云服务器促销产品,其中最低配快杰云服务器月付5元起,中国香港快杰型云服务器月付13元起,最高可购3年,有AMD/Intel系列。当然这都是针对新用户的优惠。注意,UCloud全球有31个数据中心,29条专线,覆盖五大洲,基本上你想要的都能找到。注意:以上ucloud 618优惠都是新用户专享,老用户就随便看看!点击进入:uclou...

香港服务器多少钱一个月?香港云服务器最便宜价格

香港服务器多少钱一个月?香港服务器租用配置价格一个月多少,现在很多中小型企业在建站时都会租用香港服务器,租用香港服务器可以使网站访问更流畅、稳定性更好,安全性会更高等等。香港服务器的租用和其他地区的服务器租用配置元素都是一样的,那么为什么香港服务器那么受欢迎呢,香港云服务器最便宜价格多少钱一个月呢?阿里云轻量应用服务器最便宜的是1核1G峰值带宽30Mbps,24元/月,288元/年。不过我们一般选...

gridview分页为你推荐
windows优化大师怎么用windows优化大师怎么用﹖手游运营手册游戏策划新手应该看那些书籍?中国电信互联星空怎么在中国电信网上营业厅自行开通互联星空消费权限免费开通黄钻怎样能免费开通黄钻会员在线代理网站最好的免费在线代理网站有哪些~急!网站联盟网盟跟b2b平台有什么区别ps抠图技巧如何使用PS抠图今日热点怎么删除youku今日热点怎么卸载办公协同软件最好用的协同办公软件是哪个网店推广网站开网店如何做推广?
免费国外空间 上海域名注册 电信测速器 罗马假日广场 赵容 申请空间 发包服务器 免费mysql nerds 1美金 万网主机管理 空间登录首页 免费网络 测试网速命令 中国联通宽带测试 好看的空间 免备案jsp空间 九零网络 reboot WHMCS 更多