网格视图中的自定义分页

时间:2011-12-16 06:05:18

标签: c# asp.net

我在Web用户控件中有一个网格视图,我在aspx页面中动态添加Web用户控件。我希望在网格内部进行自定义分页,以便最初只加载前10条记录以便用户控制快速加载,然后通过单击“下一页”或页码,它将加载下一组10条记录。如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

如果您使用Sqlserver的存储过程,则传递两个参数,即Page Size和Page No.

在页面大小中,它包含记录显示的总数,而页面号包含当前页面。

简而言之,你必须只获取页面大小记录而不是全部,并在网格的Page index changed事件中调用该存储过程。

答案 1 :(得分:2)

这是一个示例查询,用于显示如何根据pagenumber

从查询中获取n条记录
 create PROCEDURE [ProductCategorySearch]
    @PageIndex int = 1,
    @PageSize int = 10
    AS
    BEGIN

    DECLARE @StartRow int
    DECLARE @EndRow int

    SET @StartRow = (@PageSize * (@PageIndex - 1))  + 1  
    SET @EndRow = @PageSize * @PageIndex + 1

    SET NOCOUNT ON;

    WITH ArticleSearch AS
    (
        SELECT
           ROW_NUMBER() OVER 
             (
                -- Dynamic sorting
                ORDER BY 
                      a.pCategory_ID  ASC                

              ) AS RowNumber, 
                a.pCategory_ID ,a.pCategory_Name from     tblProductCategory a  

    )
    -- Statement that executes the CTE
    SELECT a.*,(select COUNT(*) from ArticleSearch) as RCount 
    FROM
          ArticleSearch a
    WHERE
          a.RowNumber BETWEEN @StartRow AND @EndRow - 1
    ORDER BY
          a.RowNumber

    END

答案 2 :(得分:0)

您可以使用GridView.PageSize属性。