PROGRAM VISUALBASIC

ASP.NET(VB.NET) MVCモデル入門~X.PagedListを使ったページング処理

X.PagedListを使ってページングするプログラム

今回は、こちらの記事で作成したプログラムをベースに、プロジェクトを新規に作成し、一覧画面にページング処理を追加します。
ページング処理は、NuGetパッケージの X.PagedList を使って実装します。
X.PagedListパッケージに関する内容は、以下のマイクロソフトの公式サイトを参照してください。

新規プロジェクトの作成

新規にプロジェクトを作成します。
今回のサンプルプログラムでは、プロジェクト名を「Test5」として作成します。
プロジェクトの作成方法は、こちらの記事を参照してください。

X.PagedListのインストール

ページング処理を行うNuGetパッケージ「X.PagedList」をインストールします。
メニューバーから「ツール」→「NuGetパッケージマネージャー」→「ソリューションのNuGetパッケージの管理」を選択します。

vbmvc17-1

NuGetソリューション画面から「参照」タブを選択し、検索ボックスに「x.pagedlist」と入力します。
表示された一覧から「X.PagedList.Mvc」を選択します。
インストールするプロジェクトにチェックを入れ、バージョンは最新の安定版を選択して、「インストール」ボタンを押下します。

vbmvc17-2

しばらくすると確認画面が表示されるので、「OK」ボタンを押下します。

vbmvc17-3

「インストール済み」タブを選択して、インストール結果を確認します。
「X.PagedList.Mvc」をインストールすると、自動的に「X.PagedList」と「X.PagedList.Web.Common」もインストールされます。

vbmvc17-4

bootstrapのインストール

X.PagedListで使用するページ送りボタンを装飾するために、「bootstrap」をインストールします。
bootstrapの最新バージョンは5.22(2022/10/25現在)ですが、このプロジェクトでは、Visual Studioの標準バージョンである3.41を使用します。
NuGetソリューション画面から「参照」タブを選択し、検索ボックスに「bootstrap」と入力します。
表示された一覧から「bootstrap」を選択します。
インストールするプロジェクトにチェックを入れ、バージョンは「3.41」を選択して、「インストール」ボタンを押下します。

vbmvc17-5

しばらくすると確認画面が表示されるので、「OK」ボタンを押下します。

vbmvc17-6

「インストール済み」タブを選択して、インストール結果を確認します。

vbmvc17-7

データベースの作成

プログラムを作成する前に、データベースを作成しておきます。
データベースは、Visual Studio付属の「SQL Server Express LocalDB」を使用します。
データベースの作成方法は、こちらの記事を参照してください。
データベースの仕様は、以下の通りです。
IDをプライマリーキーとして、1から始まる自動採番とします。

データベースの仕様

  • データベース名:TestDb
  • テーブル名:Emp
名前データ型Nullを許容その他
IdintNOT NULLIDENTITY (1, 1)
Namenvarchar(20)NOT NULL
Addressnvarchar(50)NOT NULL
BirthdaydateNOT NULL
Emailnvarchar(30)NULL
EMPテーブル

EMPテーブルのデータも、あらかじめインサートしておきます。
メニューバーの「ツール」→「SQL Server」→「新しいクエリ」で、クエリ画面から以下のSQL文を使ってデータをインサートします。

データ

insert into Emp values(N'山田太郎',N'東京都千代田区丸の内1-1-1','2000/1/1','yamada@aaa.co.jp');
insert into Emp values(N'鈴木一朗',N'愛知県名古屋市中区3-1-1','1985/5/10','suzuki@bbb.co.jp');
insert into Emp values(N'佐藤花子',N'福岡県福岡市中央区区1-8-1','1998/11/30', 'hanako@bbb.co.jp');
insert into Emp values(N'斉藤洋',N'北海道札幌市中央区1-2-3','1970/3/21', 'hiroshi@aaa.co.jp');
insert into Emp values(N'田中権三郎',N'鹿児島県鹿児島市10-1','1971/4/29', 'gonzaburo@ccc.co.jp');
insert into Emp values(N'高橋龍之介',N'千葉県千葉市中央区1-1','1981/12/24', 'ryunosuke@aaa.co.jp');
insert into Emp values(N'渡辺太',N'石川県金沢市1-1-1','1963/2/28', 'futoshi@aaa.co.jp');
insert into Emp values(N'山本恵子',N'東京都新宿区歌舞伎町1-4-1','1999/9/9', 'keiko@bbb.co.jp');
insert into Emp values(N'中村左門',N'大阪府大阪市北区1-3-20','1993/8/16', 'samon@aaa.co.jp');
insert into Emp values(N'小林梅子',N'高知県高知市5-1-45','1995/11/23', 'umeko@bbb.co.jp');

ADO.NET Entity Data Modelの作成

EMPテーブルを作成したら、VB.NETとデータベースを接続するために、ADO.NET Entity Data Modelを作成します。
モデル名は、「TestDbModel」とします。
ADO.NET Entity Data Modelの作成方法は、こちらの記事を参照してください。

Empクラスにアノテーションを追加

自動で作成されたEmpクラスの各プロパティに、アノテーションを追加します。
また、Birthdayプロパティに、表示フォーマットを追加します。

データベース操作用クラスの作成

データベースを操作するためのクラスを、「DbModel.vb」という名前で、「Data」フォルダーの配下に作成します。
「Data」フォルダーは、あらかじめ作成しておきます。

コントローラーの作成

一覧画面用のコントローラーを作成します。
pageNumberは表示するページ番号、pageSizeは1ページに表示する件数です。
今回は1ページに4件づつ表示していきます。
10行目は、ページ番号を設定しますが、初回はページ番号が渡されないので、「1」を設定します。
13行目で、ビューに表示するデータを渡していますが、ToPagedList()メソッドを使って、表示するページ番号と件数を指定します。

ビューの作成

一覧画面用のビューを作成します。
先頭行に「@Imports X.PagedList.Mvc」と記述して、X.PagedList.Mvcをインポートすることによって、26行目のページング機能(@Html.PagedListPager)が使えるようになります。

表示レイアウトの編集

ビューを作成すると、自動的に「Views/Shared/_Layout.vbhtml」が作成されるので、これを以下のように編集します。

スタイルシートの修正

テーブルの装飾をするために、スタイルシート(Site.css)を修正します。

プログラムの実行

プログラムを実行すると、以下のように左下にページ送りボタンが表示され、ページング処理ができるようになります。
HomeController.vbで、1画面に4件づつ表示するように設定しています。

vbmvc17-11
1ページ目
vbmvc17-12
2ページ目
vbmvc17-13
3ページ目

-PROGRAM, VISUALBASIC
-, ,