请教GridView利用存储过程分页的问题?谢谢!

问题描述

本人属于菜鸟,跪求GridView利用存储过程分页的代码,最好有详细的说明。使用的后台语言为C#,数据库为SQLServer。不胜感谢!

解决方案

解决方案二:

可以用session也可以用隐藏控件之类的
解决方案三:

俄搞错了我还以为是状态保存
解决方案四:

<asp:LabelID="lblPage"runat="server"Text='<%#"第"+(((GridView)Container.NamingContainer).PageIndex+1)+"页/共"+(((GridView)Container.NamingContainer).PageCount)+"页"%>'></asp:Label><asp:LinkButtonID="lbnFirst"runat="Server"Text="首页"Enabled='<%#((GridView)Container.NamingContainer).PageIndex!=0%>'CommandName="Page"CommandArgument="First"></asp:LinkButton><asp:LinkButtonID="lbnPrev"runat="server"Text="上一页"Enabled='<%#((GridView)Container.NamingContainer).PageIndex!=0%>'CommandName="Page"CommandArgument="Prev"></asp:LinkButton><asp:LinkButtonID="lbnNext"runat="Server"Text="下一页"Enabled='<%#((GridView)Container.NamingContainer).PageIndex!=(((GridView)Container.NamingContainer).PageCount-1)%>'CommandName="Page"CommandArgument="Next"></asp:LinkButton><asp:LinkButtonID="lbnLast"runat="Server"Text="尾页"Enabled='<%#((GridView)Container.NamingContainer).PageIndex!=(((GridView)Container.NamingContainer).PageCount-1)%>'CommandName="Page"CommandArgument="Last"></asp:LinkButton>到第<asp:TextBoxrunat="server"ID="inPageNum"Width="100px"></asp:TextBox>页<asp:ButtonID="Button1"CommandName="go"runat="server"Text="go"/>

#regiongridView索引改变时触发事件protectedvoidGridView_PageIndexChanging(objectsender,GridViewPageEventArgse){try{GridView.PageIndex=e.NewPageIndex;bind();TextBoxtb=(TextBox)GridView.BottomPagerRow.FindControl("inPageNum");tb.Text=(GridView.PageIndex+1).ToString();}catch{}}#endregion#regiongridView生成事件是触发protectedvoidGridView_RowCommand(objectsender,GridViewCommandEventArgse){if(e.CommandName=="go"){try{TextBoxtb=(TextBox)GridView.BottomPagerRow.FindControl("inPageNum");intnum=Int32.Parse(tb.Text);GridViewPageEventArgsea=newGridViewPageEventArgs(num-1);GridView_PageIndexChanging(null,ea);}catch{}}}#endregion

解决方案五:

可以用AspNetPager配合分页存储过程实现:
解决方案六:

<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"Width="100%"onrowdatabound="GridView1_RowDataBound"PageSize="15"onrowdeleting="GridView1_RowDeleting"onrowediting="GridView1_RowEditing"onpageindexchanging="GridView1_PageIndexChanging"AllowPaging="True"EnableModelValidation="True"><Columns>//你的行的显示代码</Columns><pagertemplate><tablewidth="100%"class="pager"><tr><tdstyle="text-align:right">第<asp:Labelid="lblPageIndex"runat="server"text='<%#((GridView)Container.Parent.Parent).PageIndex+1%>'/>页共<asp:Labelid="lblPageCount"runat="server"text='<%#((GridView)Container.Parent.Parent).PageCount%>'/>页<asp:linkbuttonid="btnFirst"runat="server"causesvalidation="False"commandargument="First"commandname="Page"text="首页"/><asp:linkbuttonid="btnPrev"runat="server"causesvalidation="False"commandargument="Prev"commandname="Page"text="上一页"/><asp:linkbuttonid="btnNext"runat="server"causesvalidation="False"commandargument="Next"commandname="Page"text="下一页"/><asp:linkbuttonid="btnLast"runat="server"causesvalidation="False"commandargument="Last"commandname="Page"text="尾页"/><asp:textboxid="txtNewPageIndex"runat="server"width="20px"text='<%#((GridView)Container.Parent.Parent).PageIndex+1%>'/><asp:linkbuttonid="btnGo"runat="server"causesvalidation="False"commandargument="-1"commandname="Page"text="GO"/><!--heresettheCommandArgumentoftheGoButtonto'-1'astheflag--></td></tr></table></pagertemplate></asp:GridView>

protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){GridViewtheGrid=senderasGridView;//refertotheGridViewintnewPageIndex=0;if(-2==e.NewPageIndex){//whenclickthe"GO"ButtonTextBoxtxtNewPageIndex=null;//GridViewRowpagerRow=theGrid.Controls[0].Controls[theGrid.Controls[0].Controls.Count-1]asGridViewRow;//refertoPagerTemplateGridViewRowpagerRow=theGrid.BottomPagerRow;//GridView较DataGrid提供了更多的API,获取分页块可以使用BottomPagerRow或者TopPagerRow,当然还增加了HeaderRow和FooterRow//updatedat2006年6月21日3:15:33if(null!=pagerRow){txtNewPageIndex=pagerRow.FindControl("txtNewPageIndex")asTextBox;//refertotheTextBoxwiththeNewPageIndexvalue}if(null!=txtNewPageIndex){newPageIndex=int.Parse(txtNewPageIndex.Text)-1;//gettheNewPageIndex}}else{//whenclickthefirst,last,previousandnextButtonnewPageIndex=e.NewPageIndex;}//checktopreventformtheNewPageIndexoutoftherangenewPageIndex=newPageIndex<0?0:newPageIndex;newPageIndex=newPageIndex>=theGrid.PageCount?theGrid.PageCount-1:newPageIndex;//specifytheNewPageIndextheGrid.PageIndex=newPageIndex;//控件相应的绑定代码//rebindthecontrol//inthiscaseofretrievingthedatausingthexxxDataSoucrcontrol,//justdonothing,becausetheasp.netenginebindsthedataautomatically}

以上这两个就ok了还有就是也可以用楼上大哥的分页控件,当然LZ也可以参考下这个分页

时间: 2024-10-31 14:50:14

请教GridView利用存储过程分页的问题?谢谢!的相关文章

asp.net利用存储过程分页代码

下面是存储过程(sqlserver2000下通过)   --最通用的分页存储过程 -- 获取指定页的数据  CREATE PROCEDURE Pagination  @tblName   varchar(255),       -- 表名  @strGetFields varchar(1000) = ''*'',  -- 需要返回的列  @fldName varchar(255)='''',      -- 排序的字段名  @PageSize   int = 10,          -- 页尺

GridView用存储过程自定义分页分页的完整例子

问题描述 谁有GridView用存储过程自定义分页分页的完整例子(C#)给一个 解决方案 解决方案二:datalist,repeater存储过程分页带1,2,3,4,5,6,7导航的记住把分都给我哦存储过程:直接复制进去CREATEprocup_GetTopicList@a_TableListVarchar(200),@a_TableNameVarchar(30),@a_SelectWhereVarchar(500),@a_SelectOrderIdVarchar(20),@a_SelectOr

为什么大家都有dategrid分页呢,在VS2005里没有这个控件,请问我如果用datalist应该怎样分页呢?谢谢!

问题描述 为什么大家都有dategrid分页呢,在VS2005里没有这个控件,请问我如果用datalist应该怎样分页呢?谢谢!我是刚学asp.net的,我用的是vs2005版本的,我想用datalist分页,请问应该怎样分页了.谢谢大家了! 解决方案 解决方案二:datagrid的设置里边有自动分页功能,datalist没有自动分页功能,要通过代码来实现datalist的分页解决方案三:你可以使用AspNetPager免费分页控件来为DataList分页,AspNetPager下载及演示地址为

sqlserver 通用存储过程分页代码

分页存储过程大致有下列几种 1. 利用Not in 和select top 2. 利用id大于多少和select top 3. 利用sql中的游标 4.临时表 可以参看网上的以下链接 C#中常用的分页存储过程小结 http://read.newbooks.com.cn/info/174545.html 在2005中我们的选择就多了,可以利用新语法CTE(公用表表达式),关于CTE的介绍大家可以参看博客园中一位仁兄的系列教程 http://www.cnblogs.com/nokiaguy/arch

.Net通用分页类 存储过程分页版

CODE: using System; using System.Collections.Generic; using System.Text; /**//// <summary> /// .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择) /// 作者:启程 www.letwego.cn /// 可用于任意用途,请保留作者信息,谢谢! /// </summary> namespace letwego.cn {     public class PageSt

关于存储过程分页

存储过程|分页 看了几个朋友写的关于存储过程分页的文章,感觉有点问题.starleee和东方蜘蛛希望我能发表点看法,我简单说一下. 首先是allsky的那个分页方法根本就不成立,看看他是这样的:select @iStart=(@iPage-1)*@iPageSizeselect @iEnd=@iStart+@iPageSize+1也就是说,他的开始和结束id按照每页显示数硬算出来的,想要这种方法成立必须满足这样一个条件,即这个论坛只有一个版面,并且id从1开始是连续的,中间不能有间隔,也就是说如

silverlight + wcf(json格式) + sqlserver存储过程分页

silverlight并没有提供现成的分页控件,百度了一圈,也没有发现aspx中好用的类似AspNetPager成熟控件,网上现有的一些分页代码,很多也是基于1.0版本的,silverlight2.0的并不多,自个儿琢磨了一下,发现自己弄一个也并非难事,思路和主要代码分享如下: 1.通用的"海量"数据分页存储过程在做aspx开发时我已经用存储过程分页多年,这个东东是通用的(不管前端用什么语言来做),而且性能也不错,所以这里就直接套过来用了,百度一下"分页存储过程"会

请教:oracle存储过程fecth into 问题。

问题描述 请教:oracle存储过程fecthinto问题.totalnumber;codeVARCHAR2(200);cursorcur_totalisSELECTsideline_code,sum(total_product)FROMtbl_test_test1WHEREREPORT_DATE>=begin_dateandREPORT_DATE<=now_dategroupbyname_code;opencur_total;loopfetchcur_totalintocode,total;

通用SQL存储过程分页以及asp.net后台调用的方法_Mysql

创建表格并添加300万数据 use Stored CREATE TABLE UserInfo( --创建表 id int IDENTITY(1,1) PRIMARY KEY not null,--添加主键和标识列 UserName varchar(50) ) declare @i int --添加3百万数据,大概4分钟时间 set @i=1 while @i<3000000 begin insert into UserInfo (UserName) values(@i) set @i=@i+1