skillup

技術ブログ

Java JavaScript

ページャープラグイン dataTable

投稿日:2015年7月4日 更新日:

レコードを一覧表示する上で意外と面倒くさいのがページャーでしょう。

自力で作成してもよいのですが、なかなかこれが面倒だったりします。

また近年ではリンクを踏ませずに、スクロールするだけで表示ができる形式のものが多いですが、これを比較的簡単に実装できるプラグインがjQueryであったので紹介します。

DataTable

DataTableというプラグインを使えばかなり楽にこれを実装できます。

http://datatables.net/index

画面イメージ

このプラグインを使うと下記のような画面図が比較的簡単にできてしまいます。


pager

 

あ、ちなみに、データはすべてダミーデータです。

特徴としては

  • リンクを踏まなくてもスクロールするだけでデータが取得できる
  • スクロールが一定量を超えるとプログラムにアクセスし、データを取得する
  • データ自体はajaxで取得し、JSON形式に変換する
  • 従来のリンク形式(1,2,3 次)といったような表示もプロパティで切り替えられる

などでしょう。

スクロールするだけでページャーの表示ができるので便利ですね!

早速コードを見ていきましょう

コード

プロパティ

基本的にはプロパティですべてを制御していきますが、かなり設定が複雑で私もまだ完全には理解できていません。

本家のリンク(http://datatables.net/index)には仕様が乗っていますが、英語オンリーなので結構きついでしょう(汗)

上のソースでも必要最低限のものだけに絞ってあります。

“sDom”: “frtiS”

主に検索リンクの制御を行う部分で、この部分をいじるとページャーがリンク形式になったり、リンク形式のHTMLを変えたりすることができます。アルファベットを組み合わせて、表記を変えます。

下記リンクが詳しいですね。

テーブルのオプション

“sAjaxSource”

最も大事な部分でデータを直接取得するプログラムです。スクロール量が一定に達するとこのプログラムにアクセスします。

console

スクロールが一定になるとクロムのコンソール画面で上記のように通信が発生しているのがわかると思います。

“bServerSide”

サーバーと通信が発生するか否かです。通常はtrueですが、まれにfalseを使うこともあります。

“sScrollY”

レコードを表示している部分の幅です。

“oLanguage”

通常は英語表記なので、他の言語の表記にする場合、上記のようなプロパティをセットします。詳細は下記のプロパティです。

“sProcessing”

読み込み中に表示されるメッセージや画像です。

“sInfo”:500件中(1件~20件)などのメッセージを表示します。

総レコード数を_TOTAL_、レコード開始位置を_START_、レコード終了位置を_END_で表記します。

“sInfoEmpty”: ” 0 件中 0 から 0 まで表示”
レコードがなかった場合の表記をします。

JSON形式

ちなみにJSONは下記のような形式で吐かせています。

JSONに関してはhttp://www.jsoneditoronline.org/を使うとうまく整形してくれますので使うとよいでしょう。

Javaで扱う場合にはこのエントリーで紹介したJacksonというプラグインが便利です。ただクラスをJSONに変換したところ、うまくいかずMap形式にしたところ無事表示されました。

こんなところですね。まだまだ全然使いこなせていないのでもう少しいろいろと調査したいと思っています。

ちなみに下記リンクを参考にしました。

JQueryプラグインのDataTablesでAjax通信

HTML テーブルをナイスに扱う DataTables 〜導入編〜

-Java, JavaScript
-

執筆者:


  1. […] ページャープラグイン dataTable […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

PHP(DBアクセス)→HTML→Angularを実行するために

AngularJSでデータベースをつかうときには$httpや$resourceを使うことが多いですが、それ以前にAngularを読み込んでデータベースにアクセスしないことも重要かと思っています。 とい …

no image

テストコードの実装

以前、テストコードの大切さを力説しましたが、実際に書いてみると作業の安心度が全く違います。 やはりメソッド単位での確認やデバッグができるのは非常にありがたいです。また時間がたってもテストコードを見るこ …

no image

正規表現(判定:置換:抽出)

Javaの正規表現を利用した置換、抽出について書きます。 Contents1 正規表現の基本ルール2 Javaでの正規表現の処理の流れ3 実処理3.1 判定3.2 抽出3.3 置換 正規表現の基本ルー …

no image

gulpに関して

gulpに関しての復習と色々と間違っていたところもあるのでまとめ。 ちなみに以前書いた記事は下記 gulpインストールとタスクの実行 Contents1 インストール2 タスクの実行3 npxコマンド …

no image

フィールド以外のプロパティをエンティティに持たせる

JPAでは基本的に1テーブル、1クラスです。 このためプロパティは必然的にテーブルのフィールドに対応しています。 ただ、必ずしもプロパティだけでなく、臨時で持たせておきたい、プロパティがあったりします …

アーカイブ