分页存储过程的应用简单示例随笔(附所有代码)

系统 1650 0

需要的自己拿着去用起,很简单的分页存储过程示例!!!

一.在SQL SERVER中先创建一个数据库表:

 

1   CREATE TABLE [dbo].[zhq_content](
2       [content_id] [bigint] NOT NULL primary key identity,
3       [columns_id] [smallint] NOT NULL,
4       [title] [nvarchar]( 100 ) COLLATE Chinese_PRC_CI_AS NULL,
5       [body] [text] COLLATE Chinese_PRC_CI_AS NULL,
6       [createdate] [datetime] NULL,
7       [modifieddate] [datetime] NULL,
8       [issuedate] [datetime] NULL
9       )

 

 

二,向表中随意插入数据

 

 1   declare @id   int
 2   set   @id = 1
 3  
 4   while (@id < 360 )
 5   begin
 6   INSERT INTO [ForeTechTest].[dbo].[zhq_contenttest]
 7              ([columns_id]
 8              ,[title]
 9              ,[body]
10              ,[createdate]
11              ,[modifieddate]
12              ,[issuedate])
13        VALUES
14              ( 10
15              , ' title ' + cast(@id  as  varchar)
16              , ' body ' + cast(@id  as  varchar)
17              ,getdate()
18              ,getdate()
19              ,getdate());
20   set  @id = @id + 1 ;
21  
22   end
23  

 

 

三.构建页面效果

 

 

 1   < head runat = " server " >
 2        < title > 分页显示 </ title >
 3   </ head >
 4   < body >
 5        < form id = " form1 "  runat = " server " >
 6        < div >
 7        < table >< tr >< td >
 8        < ul >
 9          < asp:Repeater  EnableViewState = " false "  runat = " server "  ID = " repeater " >
10                 < ItemTemplate >  
11                < li >   <% # DataBinder.Eval(Container,  " DataItem.content_id " ) %>      ---   <% # DataBinder.Eval(Container,  " DataItem.body " ).ToString() %>   ---      <% # DataBinder.Eval(Container,  " DataItem.createdate " ).ToString() %></ li >
12                 </ ItemTemplate >             
13          </ asp:Repeater >
14         </ ul >
15          </ td ></ tr ></ table >
16         
17          < table >< tr >
18          < td >
19             当前第 < asp:Label ID = " lblCurrentPage "  runat = " server "  Text = " Label " ></ asp:Label > / 总共 < asp:Label
20                 ID = " lblPageCount "  runat = " server "  Text = " Label " ></ asp:Label > / 总共 < asp:Label ID = " lblCount "
21                     runat = " server "  Text = " Label " ></ asp:Label > </ td >< td >
22              < input id = " btnFirst "  type = " button "  value = " first "   runat = " server "  onserverclick = " btnFirst_ServerClick "    /></ td >
23              < td >< input id = " btnPriority "  type = " button "  value = " priority "   runat = " server "  onserverclick = " btnPriority_ServerClick "    /></ td >
24              < td >< input id = " btnNext "  type = " button "  value = " next "   runat = " server "  onserverclick = " btnNext_ServerClick "    /></ td >
25              < td >< input id = " btnLast "  type = " button "  value = " last "   runat = " server "  onserverclick = " btnLast_ServerClick "    /></ td >
26              </ tr >
27          </ table >
28        </ div >
29        </ form >
30   </ body >
31   </ html >

 

 

四.别人写的二分制分页存储过程,不知道哪位大虾的,哈哈,拿过来用起,代码如下:

 

 

  1   set  ANSI_NULLS ON
  2   set  QUOTED_IDENTIFIER ON
  3   go
  4  
  5  
  6  
  7   ALTER PROCEDURE [dbo].[ProcPagedSelectMax] 
  8    ( 
  9     @tblName     nvarchar( 200 ),         ---- 要显示的表或多个表的连接 
 10     @fldName     nvarchar( 500 =   ' * ' ,     ---- 要显示的字段列表 
 11     @pageSize     int   =   10 ,         ---- 每页显示的记录个数 
 12    @page         int   =   1 ,         ---- 要显示那一页的记录 
 13    @fldSort    nvarchar( 200 =   null ,     ---- 排序字段列表或条件 
 14    @Sort        bit  =   0 ,         ---- 排序方法,0为升序,1为降序(如果是多字段排列Sort指代最后一个排序字段的排列顺序(最后一个排序字段不加排序标记) -- 程序传参如: '  SortA Asc,SortB Desc,SortC  '
 15    @strCondition    nvarchar( 1000 =   null ,     ---- 查询条件,不需where 
 16    @ID        nvarchar( 150 ),         ---- 主表的主键 
 17    @Dist                 bit  =   0 ,            ---- 是否添加查询字段的 DISTINCT 默认0不添加 / 1添加 
 18    @pageCount     int   =   1  output,             ---- 查询结果分页后的总页数 
 19    @Counts     int   =   1  output                 ---- 查询到的记录数 
 20    ) 
 21    AS 
 22    SET NOCOUNT ON 
 23    Declare @sqlTmp nvarchar( 1000 )         ---- 存放动态生成的SQL语句 
 24    Declare @strTmp nvarchar( 1000 )         ---- 存放取得查询结果总数的查询语句 
 25    Declare @strID     nvarchar( 1000 )         ---- 存放取得查询开头或结尾ID的查询语句 
 26    
 27    Declare @strSortType nvarchar( 10 )     ---- 数据排序规则A 
 28    Declare @strFSortType nvarchar( 10 )     ---- 数据排序规则B 
 29    
 30    Declare @SqlSelect nvarchar( 50 )          ---- 对含有DISTINCT的查询进行SQL构造 
 31    Declare @SqlCounts nvarchar( 50 )           ---- 对含有DISTINCT的总数查询进行SQL构造 
 32    
 33    declare @timediff datetime   -- 耗时测试时间差 
 34    select @timediff = getdate() 
 35    
 36     if  @Dist   =   0  
 37    begin 
 38         set  @SqlSelect  =   ' select  '  
 39         set  @SqlCounts  =   ' Count(*) '  
 40    end 
 41     else  
 42    begin 
 43         set  @SqlSelect  =   ' select distinct  '  
 44         set  @SqlCounts  =   ' Count(DISTINCT  ' + @ID + ' ) '  
 45    end 
 46    
 47     if  @Sort = 0  
 48    begin 
 49         set  @strFSortType = '  ASC  '  
 50         set  @strSortType = '  DESC  '  
 51    end 
 52     else  
 53    begin 
 54         set  @strFSortType = '  DESC  '  
 55         set  @strSortType = '  ASC  '  
 56    end 
 57  
 58     -------- 生成查询语句 --------  
 59     -- 此处@strTmp为取得查询结果数量的语句 
 60     if  @strCondition  is   null  or @strCondition = ''       -- 没有设置显示条件 
 61    begin 
 62         set  @sqlTmp  =   @fldName  +   '  From  '   +  @tblName 
 63         set  @strTmp  =  @SqlSelect + '  @Counts= ' + @SqlCounts + '  FROM  ' + @tblName 
 64         set  @strID  =   '  From  '   +  @tblName 
 65    end 
 66     else  
 67    begin 
 68         set  @sqlTmp  =   +  @fldName  +   ' From  '   +  @tblName  +   '  where (1>0)  '   +  @strCondition 
 69         set  @strTmp  =  @SqlSelect + '  @Counts= ' + @SqlCounts + '  FROM  ' + @tblName  +   '  where (1>0)  '   +  @strCondition 
 70         set  @strID  =   '  From  '   +  @tblName  +   '  where (1>0)  '   +  @strCondition 
 71    end 
 72    
 73     ---- 取得查询结果总数量 -----  
 74    exec sp_executesql @strTmp,N ' @Counts int out  ' ,@Counts  out  
 75    declare @tmpCounts  int  
 76     if  @Counts  =   0  
 77         set  @tmpCounts  =   1  
 78     else  
 79         set  @tmpCounts  =  @Counts 
 80    
 81         -- 取得分页总数 
 82         set  @pageCount = (@tmpCounts + @pageSize - 1 ) / @pageSize 
 83    
 84        /**//**//**//* *当前页大于总页数 取最后一页* */  
 85         if  @page > @pageCount 
 86             set  @page = @pageCount 
 87    
 88         -- /* -----数据分页2分处理------- */  
 89        declare @pageIndex  int   -- 总数 / 页大小 
 90        declare @lastcount  int   -- 总数 % 页大小  
 91    
 92         set  @pageIndex  =  @tmpCounts / @pageSize 
 93         set  @lastcount  =  @tmpCounts % @pageSize 
 94         if  @lastcount  >   0  
 95             set  @pageIndex  =  @pageIndex  +   1  
 96         else  
 97             set  @lastcount  =  @pagesize 
 98    
 99        -- // ***显示分页 
100        if  @strCondition  is   null  or @strCondition = ''       -- 没有设置显示条件 
101       begin 
102            if  @pageIndex < 2  or @page <= @pageIndex  /   2   +  @pageIndex  %   2     -- 前半部分数据处理 
103               begin  
104                    if  @page = 1  
105                       set  @strTmp = @SqlSelect + '  top  ' +  CAST(@pageSize  as  VARCHAR( 4 )) + '   ' +  @fldName + '  from  ' + @tblName                         
106                            + '  order by  ' +  @fldSort  + '   ' +  @strFSortType 
107                    else  
108                   begin 
109                        if  @Sort = 1  
110                       begin                     
111                        set  @strTmp = @SqlSelect + '  top  ' +  CAST(@pageSize  as  VARCHAR( 4 )) + '   ' +  @fldName + '  from  ' + @tblName 
112                            + '  where  ' + @ID + '  <(select min( ' +  @ID  + ' ) from ( ' +  @SqlSelect + '  top  ' +  CAST(@pageSize * (@page - 1 as  Varchar( 20 ))  + '   ' +  @ID  + '  from  ' + @tblName 
113                            + '  order by  ' +  @fldSort  + '   ' +  @strFSortType + ' ) AS TBMinID) '  
114                            + '  order by  ' +  @fldSort  + '   ' +  @strFSortType 
115                      end 
116                        else  
117                       begin 
118                        set  @strTmp = @SqlSelect + '  top  ' +  CAST(@pageSize  as  VARCHAR( 4 )) + '   ' +  @fldName + '  from  ' + @tblName 
119                            + '  where  ' + @ID + '  >(select max( ' +  @ID  + ' ) from ( ' +  @SqlSelect + '  top  ' +  CAST(@pageSize * (@page - 1 as  Varchar( 20 ))  + '   ' +  @ID  + '  from  ' + @tblName 
120                           + '  order by  ' +  @fldSort  + '   ' +  @strFSortType + ' ) AS TBMinID) '  
121                            + '  order by  ' +  @fldSort  + '   ' +  @strFSortType  
122                       end 
123                   end     
124               end 
125            else  
126               begin 
127                set  @page  =  @pageIndex - @page + 1   -- 后半部分数据处理 
128                    if  @page  <=   1   -- 最后一页数据显示                 
129                        set  @strTmp = @SqlSelect + '  * from ( ' + @SqlSelect + '  top  ' +  CAST(@lastcount  as  VARCHAR( 4 )) + '   ' +  @fldName + '  from  ' + @tblName 
130                            + '  order by  ' +  @fldSort  + '   ' +  @strSortType + ' ) AS TempTB ' + '  order by  ' +  @fldSort  + '   ' +  @strFSortType  
131                    else  
132                        if  @Sort = 1  
133                       begin 
134                        set  @strTmp = @SqlSelect + '  * from ( ' + @SqlSelect + '  top  ' +  CAST(@pageSize  as  VARCHAR( 4 )) + '   ' +  @fldName + '  from  ' + @tblName 
135                            + '  where  ' + @ID + '  >(select max( ' +  @ID  + ' ) from( ' +  @SqlSelect + '  top  ' +  CAST(@pageSize * (@page - 2 ) + @lastcount  as  Varchar( 20 ))  + '   ' +  @ID  + '  from  ' + @tblName 
136                            + '  order by  ' +  @fldSort  + '   ' +  @strSortType + ' ) AS TBMaxID) '  
137                            + '  order by  ' +  @fldSort  + '   ' +  @strSortType + ' ) AS TempTB ' + '  order by  ' +  @fldSort  + '   ' +  @strFSortType 
138                       end 
139                        else  
140                       begin 
141                        set  @strTmp = @SqlSelect + '  * from ( ' + @SqlSelect + '  top  ' +  CAST(@pageSize  as  VARCHAR( 4 )) + '   ' +  @fldName + '  from  ' + @tblName 
142                            + '  where  ' + @ID + '  <(select min( ' +  @ID  + ' ) from( ' +  @SqlSelect + '  top  ' +  CAST(@pageSize * (@page - 2 ) + @lastcount  as  Varchar( 20 ))  + '   ' +  @ID  + '  from  ' + @tblName 
143                            + '  order by  ' +  @fldSort  + '   ' +  @strSortType + ' ) AS TBMaxID) '  
144                            + '  order by  ' +  @fldSort  + '   ' +  @strSortType + ' ) AS TempTB ' + '  order by  ' +  @fldSort  + '   ' +  @strFSortType  
145                       end 
146               end 
147       end 
148  
149        else   -- 有查询条件 
150       begin 
151            if  @pageIndex < 2  or @page <= @pageIndex  /   2   +  @pageIndex  %   2     -- 前半部分数据处理 
152           begin 
153                    if  @page = 1  
154                        set  @strTmp = @SqlSelect + '  top  ' +  CAST(@pageSize  as  VARCHAR( 4 )) + '   ' +  @fldName + '  from  ' + @tblName                         
155                            + '  where 1=1  '   +  @strCondition  +   '  order by  ' +  @fldSort  + '   ' +  @strFSortType 
156                    else   if (@Sort = 1
157                   begin                     
158                        set  @strTmp = @SqlSelect + '  top  ' +  CAST(@pageSize  as  VARCHAR( 4 )) + '   ' +  @fldName + '  from  ' + @tblName 
159                            + '  where  ' + @ID + '  <(select min( ' +  @ID  + ' ) from ( ' +  @SqlSelect + '  top  ' +  CAST(@pageSize * (@page - 1 as  Varchar( 20 ))  + '   ' +  @ID  + '  from  ' + @tblName 
160                            + '  where (1=1)  '   +  @strCondition  + '  order by  ' +  @fldSort  + '   ' +  @strFSortType + ' ) AS TBMinID) '  
161                            + '   ' +  @strCondition  + '  order by  ' +  @fldSort  + '   ' +  @strFSortType 
162                   end 
163                    else  
164                   begin 
165                        set  @strTmp = @SqlSelect + '  top  ' +  CAST(@pageSize  as  VARCHAR( 4 )) + '   ' +  @fldName + '  from  ' + @tblName 
166                            + '  where  ' + @ID + '  >(select max( ' +  @ID  + ' ) from ( ' +  @SqlSelect + '  top  ' +  CAST(@pageSize * (@page - 1 as  Varchar( 20 ))  + '   ' +  @ID  + '  from  ' + @tblName 
167                            + '  where (1=1)  '   +  @strCondition  + '  order by  ' +  @fldSort  + '   ' +  @strFSortType + ' ) AS TBMinID) '  
168                            + '   ' +  @strCondition  + '  order by  ' +  @fldSort  + '   ' +  @strFSortType  
169                   end            
170           end 
171            else  
172           begin  
173                set  @page  =  @pageIndex - @page + 1   -- 后半部分数据处理 
174                if  @page  <=   1   -- 最后一页数据显示 
175                        set  @strTmp = @SqlSelect + '  * from ( ' + @SqlSelect + '  top  ' +  CAST(@lastcount  as  VARCHAR( 4 )) + '   ' +  @fldName + '  from  ' + @tblName 
176                            + '  where (1=1)  ' +  @strCondition  + '  order by  ' +  @fldSort  + '   ' +  @strSortType + ' ) AS TempTB ' + '  order by  ' +  @fldSort  + '   ' +  @strFSortType                      
177                else   if (@Sort = 1
178                        set  @strTmp = @SqlSelect + '  * from ( ' + @SqlSelect + '  top  ' +  CAST(@pageSize  as  VARCHAR( 4 )) + '   ' +  @fldName + '  from  ' + @tblName 
179                            + '  where  ' + @ID + '  >(select max( ' +  @ID  + ' ) from( ' +  @SqlSelect + '  top  ' +  CAST(@pageSize * (@page - 2 ) + @lastcount  as  Varchar( 20 ))  + '   ' +  @ID  + '  from  ' + @tblName 
180                            + '  where (1=1)  ' +  @strCondition  + '  order by  ' +  @fldSort  + '   ' +  @strSortType + ' ) AS TBMaxID) '  
181                            + '   ' +  @strCondition + '  order by  ' +  @fldSort  + '   ' +  @strSortType + ' ) AS TempTB ' + '  order by  ' +  @fldSort  + '   ' +  @strFSortType     
182                else  
183                        set  @strTmp = @SqlSelect + '  * from ( ' + @SqlSelect + '  top  ' +  CAST(@pageSize  as  VARCHAR( 4 )) + '   ' +  @fldName + '  from  ' + @tblName 
184                            + '  where  ' + @ID + '  <(select min( ' +  @ID  + ' ) from( ' +  @SqlSelect + '  top  ' +  CAST(@pageSize * (@page - 2 ) + @lastcount  as  Varchar( 20 ))  + '   ' +  @ID  + '  from  ' + @tblName 
185                            + '  where (1=1)  ' +  @strCondition  + '  order by  ' +  @fldSort  + '   ' +  @strSortType + ' ) AS TBMaxID) '  
186                            + '   ' +  @strCondition + '  order by  ' +  @fldSort  + '   ' +  @strSortType + ' ) AS TempTB ' + '  order by  ' +  @fldSort  + '   ' +  @strFSortType             
187           end     
188       end
189   print (@strTmp)
190   ------ 返回查询结果 -----  
191   exec sp_executesql @strTmp 
192   select datediff(ms,@timediff,getdate())  as  耗时 
193   -- print @strTmp 
194   SET NOCOUNT OFF 
195  
196  
197  
198  
199  
200  

 

 

五。最主要的是编写后台代码,现在我把最简单的操作集成一下,写了我2个来小时,应该是没有BUG了的:

 

  1   using  System;
  2   using  System.Data;
  3   using  System.Configuration;
  4   using  System.Collections;
  5   using  System.Web;
  6   using  System.Web.Security;
  7   using  System.Web.UI;
  8   using  System.Web.UI.WebControls;
  9   using  System.Web.UI.WebControls.WebParts;
 10   using  System.Web.UI.HtmlControls;
 11  
 12   using  System.Data.SqlClient;
 13  
 14   public   partial   class  PageSort_Default : System.Web.UI.Page
 15   {
 16        protected   int  pageCount;
 17        protected   int  counts;
 18        protected   int  pageIndex;
 19        protected   void  Page_Load( object  sender, EventArgs e)
 20       {
 21            if  (Request.QueryString[ " pageIndex " ==   null )
 22           {
 23               pageIndex  =   1 ;
 24           }
 25            else
 26           {
 27               pageIndex  =   int .Parse(Request.QueryString[ " pageIndex " ].ToString());
 28           }
 29  
 30           BindContent( out  pageCount,  out  counts,  20 , pageIndex);
 31           lblPageCount.Text  =  pageCount.ToString();
 32           lblCount.Text  =  counts.ToString();
 33           lblCurrentPage.Text  =  pageIndex.ToString();
 34       }
 35  
 36        private   void  BindContent( out   int  pageCount, out   int  counts, int  pageSize, int  pageIndex )
 37       {
 38           DataSet ds  =  BindContent( " zhq_contenttest " , " * " ,pageSize,pageIndex, " and  columns_id=10 " , " content_id " , 1 , " content_id " , 0 , out  pageCount , out  counts);
 39            if (ds != null && ds.Tables[ 0 ].Rows.Count > 0 )
 40           {
 41               repeater.DataSource  =  ds;
 42               repeater.DataBind();
 43           }
 44       }
 45  
 46        private  DataSet BindContent( string  tbName,  string  filedName,  int  pageSize,  int  pageIndex,  string  condition,  string  sortedField,  int  sortType,  string  id,  int  distinctType,  out   int  pageCount,  out   int  count)
 47       {
 48           DataSet ds;
 49           SqlConnection conn;
 50            using  (conn  =   new  SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[ " foretechtest " ].ToString()))
 51           {
 52               SqlParameter[] paras  =   new  SqlParameter[ 11 ];
 53               paras[ 0 =   new  SqlParameter( " @tblName " , SqlDbType.NVarChar,  200 );
 54               paras[ 0 ].Value  =  tbName;
 55               paras[ 1 =   new  SqlParameter( " @fldName " , SqlDbType.NVarChar,  500 );
 56               paras[ 1 ].Value  =  filedName;
 57               paras[ 2 =   new  SqlParameter( " @pageSize " , SqlDbType.Int);
 58               paras[ 2 ].Value  =  pageSize;
 59               paras[ 3 =   new  SqlParameter( " @page " , SqlDbType.Int);
 60               paras[ 3 ].Value  =  pageIndex;
 61  
 62               paras[ 4 =   new  SqlParameter( " @strCondition " , SqlDbType.NVarChar,  1000 );
 63               paras[ 4 ].Value  =  condition;
 64               paras[ 5 =   new  SqlParameter( " @fldSort " , SqlDbType.NVarChar,  200 );
 65               paras[ 5 ].Value  =  sortedField;
 66               paras[ 6 =   new  SqlParameter( " @Sort " , SqlDbType.Bit);
 67               paras[ 6 ].Value  =  sortType;
 68  
 69               paras[ 7 =   new  SqlParameter( " @ID " , SqlDbType.NVarChar,  150 );
 70               paras[ 7 ].Value  =  id;
 71               paras[ 8 =   new  SqlParameter( " @Dist " , SqlDbType.Bit);
 72               paras[ 8 ].Value  =  distinctType;
 73               paras[ 9 =   new  SqlParameter( " @pageCount " , SqlDbType.Int);
 74               paras[ 9 ].Direction  =  ParameterDirection.Output;
 75               paras[ 10 =   new  SqlParameter( " @Counts " , SqlDbType.Int);
 76               paras[ 10 ].Direction  =  ParameterDirection.Output;
 77                try
 78               {
 79                   conn.Open();
 80                   ds  =   new  DataSet();
 81                   SqlDataAdapter da  =   new  SqlDataAdapter( " ProcPagedSelectMax " , conn);
 82                   da.SelectCommand.CommandType  =  CommandType.StoredProcedure;
 83                    foreach (SqlParameter para  in  paras)
 84                   {
 85                       da.SelectCommand.Parameters.Add(para);
 86                   }
 87                   da.Fill(ds);
 88  
 89               }
 90                finally
 91               {
 92                   conn.Close();
 93                   pageCount  =   int .Parse(paras[ 9 ].Value.ToString());
 94                   count  =   int .Parse(paras[ 10 ].Value.ToString());
 95               }
 96                return  ds;
 97  
 98           }
 99            /*
100            * @tblName = N' zhq_contenttest',
101           @fldName = N'*',
102           @pageSize = 20,
103           @page = 5,
104           @strCondition=N' and  columns_id=11  ',
105           @fldSort = N' createdate ',
106           @Sort = 1,
107           @ID = N'content_id ',
108           @Dist = 0,
109           @pageCount = @pageCount OUTPUT,
110           @Counts = @Counts OUTPUT
111  
112   SELECT    @pageCount as N'@pageCount',
113           @Counts as N'@Counts' */
114       }
115  
116  
117        protected   void  btnPriority_ServerClick( object  sender, EventArgs e)
118       {
119            if  ( int .Parse(lblCurrentPage.Text.ToString())  <=   1 )
120           {//control this range  pageindex  >//=1
121               pageIndex  =   1 ;
122           }
123            else  
124           {//
125               pageIndex  =   int .Parse(lblCurrentPage.Text.ToString())  -   1 ;
126           }
127           Response.Redirect( " Default.aspx?pageIndex= "   + pageIndex);
128       }
129        protected   void  btnNext_ServerClick( object  sender, EventArgs e)
130       {
131            if  ( int .Parse(lblCurrentPage.Text.ToString())  >=  pageCount)
132           {
133               pageIndex  =  pageCount;
134           }
135            else  
136           {
137               pageIndex  =   int .Parse(lblCurrentPage.Text.ToString())  +   1 ;
138           }
139           Response.Redirect( " Default.aspx?pageIndex= "   +  pageIndex);
140       }
141        protected   void  btnLast_ServerClick( object  sender, EventArgs e)
142       {
143           Response.Redirect( " Default.aspx?pageIndex= " + lblPageCount.Text.ToString().Trim());
144       }
145        protected   void  btnFirst_ServerClick( object  sender, EventArgs e)
146       {
147           Response.Redirect( " Default.aspx?pageIndex=1 " );
148       }
149   }
150  

 

 

       感觉速度还是相当快的..........如果要应用到其他的方面,修改下其他的参数即可。

显示如下:

分页存储过程的应用简单示例随笔(附所有代码)

 

*****************************************************************

为了安全通过控制

if (int.Parse(lblCurrentPage.Text.ToString()) <= 1)
        {
            pageIndex = 1;
        }
        else
        {
            pageIndex = int.Parse(lblCurrentPage.Text.ToString()) - 1;
        }

 和if (int.Parse(lblCurrentPage.Text.ToString()) >= pageCount)
        {
            pageIndex = pageCount;
        }
        else
        {
            pageIndex = int.Parse(lblCurrentPage.Text.ToString()) + 1;
        }

控制范围不超出索引。

 

同样可以通过页面的生成过程来控制控件的显示状态:

 

  protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["pageIndex"] == null)
        {
            pageIndex = 1;
        }
        else
        {
            pageIndex = int.Parse(Request.QueryString["pageIndex"].ToString());
        }

        BindContent(out pageCount, out counts, 20, pageIndex);
        lblPageCount.Text = pageCount.ToString();
        lblCount.Text = counts.ToString();
        lblCurrentPage.Text = pageIndex.ToString();
         if (lblCurrentPage.Text.ToString() == pageCount.ToString())
        {
            btnNext.Visible = false;
        }
        else
        {
            btnNext.Visible = true;
        }
        if (lblCurrentPage.Text.ToString() == "1")
        {
            btnFirst.Visible = false;
        }
        else
        {
            btnFirst.Visible = true;
        }
      
    }

 

主要是需要掌握页面的生命周期,加以控制。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

http://www.cnblogs.com/jasenkin/archive/2010/03/23/1692562.html

分页存储过程的应用简单示例随笔(附所有代码)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论