skillup

技術ブログ

Java JavaScript

ページャープラグイン dataTable

投稿日:

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

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

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

DataTable

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

http://datatables.net/index

画面イメージ

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


pager

 

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

特徴としては

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

などでしょう。

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

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

コード

プロパティ

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

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

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

“sDom”: “frtiS”

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

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

http://d.hatena.ne.jp/gloryof/20140102/1388670210

“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形式にしたところ無事表示されました。

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

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

http://www.hos.co.jp/blog/20130115/

http://etc9.hatenablog.com/entry/20121029/1351513986

-Java, JavaScript

執筆者:


comment

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

関連記事

no image

Seleniumでの画面テスト

普段テストはJunitで単体テストを書いていますが、画面からのテストなどは当然チェックできません。 フレームワークだとどうしても内部構造がわからず画面から直接うごかして確認しなくてはいけないようなケー …

no image

Map,KeySetでのSteam

日常で一番よく使うMapループ系処理について Map KeySetのStreamでの書き方 Map<String,String>でEntrySetではなく、KeySetで展開したいときなど …

no image

AngularJSでのinfite_scroll

今回もAngularネタです。 一般的なデータの一覧画面ではページャーをボタンで移動するのではなく、スクロールするだけで次々とアクセスできるようになるのが一般的でしょう。 facebookやtwitt …

no image

動的な置換

前回、置換に関する記事をまとめましたが動的な置換について勉強する機会があったのでまとめておきます。一般に置換表現というのはほとんどが静的なものかと思います。 例えば <intpu type=&# …

no image

JPQLでの算術関数

複雑なJPQLを書いていると、通常のレコードの取り出しだけではなく、合計(SUM)や算出(COUNT)などのいわゆる算術関数を使うことが一般的です。 JPQLでもこれらを通常通り扱うことができます。 …