[解決済み] ASP.NET MVCでページネーションを行うにはどうすればよいですか?
2023-04-08 20:46:31
質問
ASP.NET MVCでページ分割を行うための最も好ましい、簡単な方法は何ですか? すなわち、リストをいくつかのブラウズ可能なページに分割する最も簡単な方法は何ですか。
例として、データベース/ゲートウェイ/リポジトリから次のような要素のリストを取得するとします。
public ActionResult ListMyItems()
{
List<Item> list = ItemDB.GetListOfItems();
ViewData["ItemList"] = list;
return View();
}
簡単のために、私はアクションのパラメータとしてページ番号だけを指定したいと思います。こんな感じで。
public ActionResult ListMyItems(int page)
{
//...
}
どのように解決するのですか?
さて、データソースは何でしょうか?あなたのアクションは、いくつかのデフォルトの引数を取ることができます。
ActionResult Search(string query, int startIndex, int pageSize) {...}
は、startIndex が 0 で pageSize が (例えば) 20 であるように、ルーティングのセットアップでデフォルトに設定されています。
routes.MapRoute("Search", "Search/{query}/{startIndex}",
new
{
controller = "Home", action = "Search",
startIndex = 0, pageSize = 20
});
フィードを分割するには、LINQを使うと非常に簡単です。
var page = source.Skip(startIndex).Take(pageSize);
("startIndex" ではなく "pageNumber" を使用する場合は乗算を行う)
LINQ-toSQL、EFなどでは、これはデータベースまで"compose"する必要があります。
そして、次のページへのアクションリンクを使用することができるはずです(等)。
<%=Html.ActionLink("next page", "Search", new {
query, startIndex = startIndex + pageSize, pageSize }) %>
関連
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] 乱数(int)を生成する方法を教えてください。
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] ファイルアップロード ASP.NET MVC 3.0
-
[解決済み] ASP.NET MVC Frameworkで複数のサブミットボタンを処理する方法は?
-
[解決済み] ASP.NET MVCでenumからドロップダウンリストを作成するにはどうすればよいですか?
-
[解決済み] ASP.NET MVC - カスタムIIdentityまたはIPrincipalの設定
-
[解決済み] ASP.NET MVCでビューをコンパイルする
-
[解決済み] ASP.NET MVC Controllerにフォームを使わずに文字列の配列を投稿するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する