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