如何实现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
一、麻花云官网点击直达麻花云官方网站二、活动方案优惠码:专属优惠码:F1B07B 享受85折优惠。点击访问活动链接最新活动 :五一狂欢 惠战到底 香港云主机 1.9折起香港特价体验云主机CN2 云服务器最新上线KVM架构,,默认40G SSD,+10G自带一个IPv4,免费10Gbps防御,CPU内存带宽价格购买1核1G1M19元首月链接2核2G 2M92元/3个月链接2核4G3M112元/3个月...
41云怎么样?41云是国人主机品牌,目前经营产品有国内外云服务器、CDN(高防CDN)和物理机,其中国内外云服务器又细分小类有香港限流量VPS、香港大带宽VPS、香港弹性自选VPS、香港不限流VPS、香港BGP线路VPS、香港Cera+大带宽机器、美国超防VPS、韩国原生VPS、仁川原生VPS、日本CN2 VPS、枣庄高防VPS和金华高防VPS;物理机有美国Cera服务器、香港单程CN2服务器、香...
今天中午的时候有网友联系到在选择网站域名建站和主机的时候问到域名和IP地址有没有关联,或者需要注意的问题。毕竟我们在需要建站的时候,我们需要选择网站域名和主机,而主机有虚拟主机,包括共享和独立IP,同时还有云服务器、独立服务器、站群服务器等形式。通过这篇文章,简单的梳理关于网站域名和IP之间的关系。第一、什么是域名所谓网站域名,就是我们看到的类似"www.laozuo.org",我们可以通过直接记...