ページネーションの実装方法について、公式サイトを参考にまとめます。
ぶっちゃけ、EntityをInterfaceにドラッグ&ドロップするだけで自動で作成してくれます。しかし、開発者であれば微修正や改修などは自身でする必要があるため、一から実装できるように知識をつけておくことは大切かなと思います。
ページネーションとは
そもそもページネーションとは何でしょうか。
ページネーションとは、大量のデータを一度にすべて表示するのではなく、複数のページに分割して表示するUIの仕組みのことです。
ウェブサイトやアプリケーションで、検索結果や商品リストなどが何百、何千件とある場合に、画面下部に「1 2 3 ... 次へ」のようなナビゲーションが表示されているのを見たことがあるかと思います。これがページネーションです。
上記はGeminiに質問して解答してもらったものをそのまま載せてます。
要はTable WidgetやList Widgetのデータをすべて表示すると、処理時間・ユーザビリティが低下するため、分割して表示することで処理速度・使い勝手もよくしよう!とした機能です。
ページネーションの実装
Step1.DataとTableを用意しよう!
適当にTableを用意して、Dataをバインドさせます。ここでは、Productデータを作成しました。
この状態でアプリケーションを起動すると、すべてのデータが表示されます。
Step2.Pagenationを用意しよう!
ドラッグ&ドロップでPagenation Widgetを配置します。
配置するだけではErrorが出るため、Pagenation Widgetのプロパティを設定する必要があります。
最低限設定が必要なプロパティを挙げます。
・StartIndex:ページネーションを開始する初期インデックスを設定します。
・MaxRecords:各ページに表示するレコード数を設定します。
・TotalCount:テーブルの総レコード数を設定します。
・Handler:ユーザーがページボタンを押下した際のアクションを設定します。
Step3.Pagenationを設定しよう!
まずは「StartIndex」と「MaxRecords」を設定します。
そのために、Screenのローカル変数に「StartIndex_Screen」と「MaxRecords_Screen」を用意します。二つのローカル変数の設定は、下記となります。
「StartIndex_Screen」:Integer型、Default Value = 「0」
「MaxRecords_Screen」:Integer型、Default Value = 「3」
これをPagenationに設定します。
次は「TotalCount」ですが、これはテーブルの総数=バインドしたDataの総レコード数に設定します。Aggregate.countで設定できます。
Handlerのアクションを設定します。
「Add Client Action」からでも作れますが、Handlerから「New Client Action」で作成したほうが楽です。
すると、入力変数「NewStartIndex」を持つアクションを作成してくれます。「NewStartIndex」はページボタン押下時に、そのページ番号の開始レコード数を受け取る変数となります。そのため、「NewStartIndex」の値を先ほど作成した「StartIndex_Screen」にAssignし、AggregateをRefreshします。
最後に、TableにバインドしたAggregateの「StartIndex」と「MaxRecords」にも先ほど作成した変数を設定して完成です。
Step4.アプリケーションを確認しよう!
Step1~Step3の実装結果は下記となります。
表示するレコード数や切り替え処理がうまくいってますね!これにて実装完了です!