jQuery EasyUI でサブグリッドを使う方法

jQuery EasyUI で以下のようなサブグリッドを使う方法。

datagrid_detailview

jQuery EasyUIではこの種のグリッドには「Detail View」という名称がつけられている。その他、グリッドの複数行をまとめて表示する「Group View」など、有用な拡張が用意されている。なお、本機能は標準のライブラリではサポートされておらず、追加ライブラリをインストールする必要がある。

  1. 追加ライブラリを導入する
    jQuery EasyUIのサイトの「Extension」から、「DataGrid View」を選択すると、最下段にダウンロード用のリンクがある。得られたファイルを解凍し、適切なフォルダに配置する。
  2. HTMLファイルからライブラリを読み込む
    拡張の内容によりライブラリは異なる。今回は、datagrid-detailview.js が対象。

    <script
    type="text/javascript"
    src="/jslib/jquery-easyui-1.4.3/jquery-easyui-datagridview/datagrid-detailview.js">
    </script>
    
  3. JavaScriptコードを拡張する
    既に作成したグリッドに、コードを追加する。(グリッド生成時に、サブグリッドもまとめて処理することもできる。)基本的に、formatter を定義して、行を選択した時のイベントハンドラを定義すればOK。

 

コードサンプル:

var $dg = ... // 通常どおりグリッドを生成
// 以下、追加でサブグリッドを構成するコード
$dg.datagrid({
// viewをサブグリッドとして定義
view: detailview,
// formatterを定義
detailFormatter:function(index,row){
// サブグリッドを<table>として定義
//// 固有のクラス名を指定しておく
return '<div style="padding:2px"><table class="ddv"></table></div>';
},
// 開いたとき(+ボタンを押したとき)の動作を定義
onExpandRow: function(index,row){
// 行番号とクラス名を指定して配下のサブグリッドを取得
var ddv = $(this).datagrid('getRowDetail',index).find('table.ddv);
// サブグリッドを生成
// showTripLineItem(index, row, ddv);
// 行の高さを設定
$dg.datagrid('fixDetailRowHeight',index);
}
});

 


コメントを残す

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