簡體   English   中英

網格視圖中的自定義分頁

[英]Custom Paging in a Grid View

我在Web用戶控件中有一個網格視圖,並且正在將Web用戶控件動態添加到aspx頁面中。 我希望在網格內進行自定義分頁,以便最初僅加載前10條記錄,以便用戶控件快速加載,然后單擊“下一頁”或頁碼將加載下一組10條記錄。 如何做到這一點?

如果您使用Sqlserver的存儲過程,則傳遞兩個參數,即“頁面大小”和“頁面號”。

在“頁面大小”中,它包含記錄顯示的總數,“頁面號”中包含“當前頁面”。

簡而言之,您只需要獲取頁面大小記錄而不是全部記錄,並在網格的頁面索引更改事件中調用該存儲過程。

這是一個示例查詢,顯示了如何根據頁碼從查詢中獲取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

您可以為此使用GridView.PageSize屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM