收藏 分销(赏)

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

上传人:pc****0 文档编号:6382511 上传时间:2024-12-07 格式:DOC 页数:9 大小:47.50KB 下载积分:10 金币
下载 相关 举报
如何实现GridView的手动分页.doc_第1页
第1页 / 共9页
如何实现GridView的手动分页.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
如何实现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 = "where type='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 = "order by 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:Label id="LabelRow" runat="server"/></font>页 | 共有<asp:Label id="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><a href="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 OUTPUT as    /*定义局部变量*/    declare @intBeginID         int    declare @intEndID           int    declare @intRootRecordCount int    declare @intRowCount        int    declare @TmpSelect          NVarchar(600)    /*关闭计数*/    set nocount on       /*求总共根贴数*/    select @TmpSelect = 'set nocount on;select @SPintRootRecordCount = count(*) from '+@a_TableName+' '+@a_SelectWhere    execute sp_executesql              @TmpSelect,              N'@SPintRootRecordCount int OUTPUT',              @SPintRootRecordCount=@intRootRecordCount OUTPUT select @RecordCount = @intRootRecordCount    if (@intRootRecordCount = 0)    --如果没有贴子,则返回零        return 0           /*判断页数是否正确*/    if (@a_intPageNo - 1) * @a_intPageSize > @intRootRecordCount       return (-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=@intBeginID OUTPUT    /*结束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 OUTPUT if @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 ' else    select @TmpSelect = 'set nocount off;set rowcount 0;select '+@a_TableList+' from '+@a_TableName+' '+@a_SelectWhere+' and '+@a_SelectOrderId+' between ' if @intEndID > @intBeginID    select @TmpSelect = @TmpSelect+'@SPintBeginID and @SPintEndID'+' '+@a_SelectOrder else    select @TmpSelect = @TmpSelect+'@SPintEndID and @SPintBeginID'+' '+@a_SelectOrder    execute sp_executesql              @TmpSelect,              N'@SPintEndID int,@SPintBeginID int',              @SPintEndID=@intEndID,@SPintBeginID=@intBeginID    return(@@rowcount)    --select @@rowcount GO
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服