求gridview分页功能前后台代码,谢谢
就类似与
 首页 上一页 下一页 尾页 使用linkbutton

解决方案 »

  1.   

    这个要用存储过程
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    goALTER PROCEDURE [dbo].[PROCE_SQL2005PAGECHANGE]
    (
     @TableName varchar(50),            --表名
     @ReFieldsStr varchar(200) = '*',   --字段名(全部字段为*)
     @OrderString varchar(200),         --排序字段(必须!支持多字段不用加order by)
     @WhereString varchar(500) =N'',  --条件语句(不用加where)
     @PageSize int,                     --每页多少条记录
     @PageIndex int = 1 ,               --指定当前为第几页
     @TotalRecord int output            --返回总记录数
    )
    AS
     
    BEGIN        --处理开始点和结束点
        Declare @StartRecord int;
        Declare @EndRecord int; 
        Declare @TotalCountSql nvarchar(500); 
        Declare @SqlString nvarchar(2000);    
        set @StartRecord = (@PageIndex-1)*@PageSize + 1
        set @EndRecord = @StartRecord + @PageSize - 1 
        SET @TotalCountSql= N'select @TotalRecord = count(*) from ' + @TableName;--总记录数语句
        SET @SqlString = N'(select row_number() over (order by '+ @OrderString +') as rowId,'+@ReFieldsStr+' from '+ @TableName;--查询语句
        --
        IF (@WhereString! = '' or @WhereString!=null)
            BEGIN
                SET @TotalCountSql=@TotalCountSql + '  where '+ @WhereString;
                SET @SqlString =@SqlString+ '  where '+ @WhereString;            
            END
        --第一次执行得到
        --IF(@TotalRecord is null)
        --   BEGIN
               EXEC sp_executesql @totalCountSql,N'@TotalRecord int out',@TotalRecord output;--返回总记录数
        --  END
        ----执行主语句
        set @SqlString ='select * from ' + @SqlString + ') as t where rowId between ' + ltrim(str(@StartRecord)) + ' and ' +  ltrim(str(@EndRecord));
        Exec(@SqlString)    
    END
      

  2.   

    LINQ的方法http://blog.csdn.net/davidcoffee/archive/2011/03/09/6235375.aspx
    真分页方法,当然也可以用存储过程分页~比较效率便捷,只是给LZ你一个思路
    如果需要DEMO可留下LZ你的邮箱~
      

  3.   

    AspNetPager
      

  4.   

    看见楼主的结贴率为0 。  ! 很纠结
    你既然不用GRIDVIEW的分页功能。那么最好的选择就是使用ASPNETPAGER控件。 使用方法很简单。
    他的工作原理很简单!
    简单点说就是更具ASPNETPAGER里面的值(存储于视图当中)动态的更新SQL 并且动态绑定数据控件。
    如果不清楚 那么就搜下ASPNETPAGER控件的用法吧。
      

  5.   

    AspNetPager 第三方分页控件算最方便了
      

  6.   

    在gridview里添加以下代码也行 <PagerTemplate>
                                                                <asp:Label ID="lblPage" runat="server" Text='<%# "第" + (((GridView)Container.NamingContainer).PageIndex + 1)  + "页/共" + (((GridView)Container.NamingContainer).PageCount) + "页" %> '></asp:Label>
                                                                <asp:LinkButton ID="lbnFirst" runat="Server" Text="首页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'
                                                                    CommandName="Page" CommandArgument="First"></asp:LinkButton>
                                                                <asp:LinkButton ID="lbnPrev" runat="server" Text="上一页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'
                                                                    CommandName="Page" CommandArgument="Prev"></asp:LinkButton>
                                                                <asp:LinkButton ID="lbnNext" runat="Server" Text="下一页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>'
                                                                    CommandName="Page" CommandArgument="Next"></asp:LinkButton>
                                                                <asp:LinkButton ID="lbnLast" runat="Server" Text="尾页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>'
                                                                    CommandName="Page" CommandArgument="Last"></asp:LinkButton>
                                                                到第<asp:TextBox runat="server" ID="inPageNum" Width="40px"></asp:TextBox>页
                                                                <asp:Button ID="Button1" CommandName="go" Text="Go" runat="server" />
                                                                &nbsp; &nbsp;&nbsp;<asp:Label ID="lblText" runat="server"></asp:Label>
                                                            </PagerTemplate>
      

  7.   

    用第三方控件AspNetPager,再写个存储过程就可以了!
      

  8.   

    AspNetPager 第三方分页控件算最方便了+存储过程