2011-12-16 19 views
0

私はWebユーザーコントロールのグリッドビューを持っており、Webユーザーコントロールをaspxページ内に動的に追加しています。グリッド内にカスタムページネーションが必要なので、最初は10個のレコードしかロードしないので、ユーザーコントロールはすぐにロードされ、「次へ」またはページ番号をクリックすると10個のレコードの次のグループがロードされます。これはどのように達成できますか?グリッド表示のカスタムページング

答えて

2

あなたはページサイズとページサイズでページ番号

ある2つのパラメータを渡し、その後のSQLServerのストアドプロシージャを使用する場合には、履歴表示の合計数が含まれていませんし、ページには現在のページが含まれています。

要するに、ページサイズレコードのみを取得し、そのストアドプロシージャをグリッドのページインデックス変更イベントで呼び出す必要があります。

2

これはあなたがそのためにGridView.PageSizeプロパティを使用することができますページ番号

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 
0

に応じてクエリからn個のレコードを取得する方法を示すためのサンプルクエリです。

関連する問題