私のデータベースには 10000000 レコードがあります。GridView First では、最初の 10 レコードを表示しています。次のレコードを表示するには、ページ番号 (1、2、3、------10000) をクリックする必要があります。しかし、初めて 10 レコードを取得しているため、GridView ページングが表示されません。
ASP.NET GridView でページングを静的に表示する方法はありますか?
私のデータベースには 10000000 レコードがあります。GridView First では、最初の 10 レコードを表示しています。次のレコードを表示するには、ページ番号 (1、2、3、------10000) をクリックする必要があります。しかし、初めて 10 レコードを取得しているため、GridView ページングが表示されません。
ASP.NET GridView でページングを静的に表示する方法はありますか?
非常に多くのレコードがあるため、データを取得するために実行されている正確なクエリを考慮する必要があります。
データ ページングを行う方法は多数あります ( http://beyondrelational.com/modules/2/blogs/28/posts/10434/sql-server-server-side-paging-with-rownumber-function.aspx )。ただし、「最良の」方法は、実行している SQL Server の正確なバージョンによって異なります。
基本的に、解決策は、ページ番号とページあたりのレコード数をある種のクエリに渡すことです。通常、クエリとしてのストアド プロシージャは非常に面倒です。
そこに着いたら、オプションがあります。合計レコード数をクエリの OUT パラメータとして送り返し、結果セットを通常どおり送り返すか、合計レコード数を列として送り返します。どちらの方法でも、クエリを 2 回実行する必要があり、もう 1 つの方法では余分なデータ列が必要になり、ネットワーク トラフィックが増加するため、どちらの方法でも確実に効率の問題があります。
それを解決したら、UI をどのように機能させたいかを正確に把握できます。
非常に多くのレコードがあるため、ページングはお勧めしません。最近追加された上位 20 件のレコードを表示し、レコードを除外するオプションを提供できます。ユーザーはキーワードを入力できます。この新しい結果セットを使用して、GridView を再クエリおよび再バインドします。
また、ページ化された結果を取得するのに役立つ Micro-ORM であるPetaPocoの使用を検討することもできます。