jQuery EasyUI データグリッドとツリープラグイン -Treegrid ツリーグリッド
jQuery EasyUI プラグイン
$.fn.datagrid.defaults から拡張されています。$.fn.treegrid.defaults を使用してデフォルトの defaults を上書きします。
ツリーグリッド(treegrid)は、階層データをグリッド形式で表示するために使用されます。これはデータグリッド(datagrid)に基づいており、ツリービュー(treeview)と編集可能なグリッドを組み合わせたものです。ツリーグリッド(treegrid)を使用すると、カスタマイズ可能で非同期に展開できる行を作成し、複数列で階層データを表示できます。
依存関係
- datagrid
使用法
HTML マークアップでツリーグリッド(treegrid)を作成します。ほとんどの場合、ツリーグリッド(treegrid)はデータグリッド(datagrid)と同じ構造と形式に従います。
<table id="tt" class="easyui-treegrid" style="width:600px;height:400px"
data-options="url:'get_data.php',idField:'id',treeField:'name'">
<thead>
<tr>
<th data-options="field:'name',width:180">Task Name</th>
<th data-options="field:'persons',width:60,align:'right'">Persons</th>
<th data-options="field:'begin',width:80">Begin Date</th>
<th data-options="field:'end',width:80">End Date</th>
</tr>
</thead>
</table>
JavaScript を使用してツリーグリッド(treegrid)を作成します。
<table id="tt" style="width:600px;height:400px"></table>
$('#tt').treegrid({
url:'get_data.php',
idField:'id',
treeField:'name',
columns:[[
{title:'Task Name',field:'name',width:180},
{field:'persons',title:'Persons',width:60,align:'right'},
{field:'begin',title:'Begin Date',width:80},
{field:'end',title:'End Date',width:80}
]]
});
プロパティ
このプロパティはデータグリッド(datagrid)から拡張されています。以下はツリーグリッド(treegrid)用に追加されたプロパティです。
| 名前 | 型 | 説明 | デフォルト値 |
|---|---|---|---|
| idField | string | ツリーノードを識別するキー名フィールドを定義します。必須です。 | null |
| treeField | string | ツリーノードのフィールドを定義します。必須です。 | null |
| animate | boolean | ノードが展開または折りたたまれるときにアニメーション効果を表示するかどうかを定義します。 | false |
| loader | function(param,success,error) | リモートサーバーからデータを読み込む方法を定義します。false を返すとそのアクションをキャンセルします。この関数には次のパラメーターがあります: param:リモートサーバーに渡すパラメーターオブジェクト。 success(data):データの取得が成功したときに呼び出されるコールバック関数。 error():データの取得が失敗したときに呼び出されるコールバック関数。 |
json loader |
| loadFilter | function(data,parentId) | 表示するフィルタリングされたデータを返します。 |
イベント
このイベントはデータグリッド(datagrid)から拡張されています。以下はツリーグリッド(treegrid)用に追加されたイベントです。
| 名前 | パラメーター | 説明 |
|---|---|---|
| onClickRow | row | ユーザーがノードをクリックしたときにトリガーされます。 |
| onDblClickRow | row | ユーザーがノードをダブルクリックしたときにトリガーされます。 |
| onClickCell | field,row | ユーザーがセルをクリックしたときにトリガーされます。 |
| onDblClickCell | field,row | ユーザーがセルをダブルクリックしたときにトリガーされます。 |
| onBeforeLoad | row, param | データ読み込みリクエストが送信される前にトリガーされます。false を返すと読み込みアクションをキャンセルします。 |
| onLoadSuccess | row, data | データの読み込みが成功したときにトリガーされます。 |
| onLoadError | arguments | データの読み込みが失敗したときにトリガーされます。arguments パラメーターは jQuery.ajax の 'error' メソッドと同じです。 |
| onBeforeExpand | row | ノードが展開される前にトリガーされます。false を返すと展開アクションをキャンセルします。 |
| onExpand | row | ノードが展開されたときにトリガーされます。 |
| onBeforeCollapse | row | ノードが折りたたまれる前にトリガーされます。false を返すと折りたたみアクションをキャンセルします。 |
| onCollapse | row | ノードが折りたたまれたときにトリガーされます。 |
| onContextMenu | e, row | ノードを右クリックしたときにトリガーされます。 |
| onBeforeEdit | row | ユーザーがノードの編集を開始したときにトリガーされます。 |
| onAfterEdit | row,changes | ユーザーが編集を完了したときにトリガーされます。 |
| onCancelEdit | row | ユーザーがノードの編集をキャンセルしたときにトリガーされます。 |
メソッド
多くのメソッドは、ツリーノードの値を表す 'id' という名前のパラメーターを必要とします。
| 名前 | パラメーター | 説明 |
|---|---|---|
| options | none | ツリーグリッド(treegrid)のオプションを返します。 |
| resize | options | ツリーグリッド(treegrid)のサイズを設定します。options パラメーターには2つのプロパティが含まれます: width:ツリーグリッド(treegrid)の新しい幅。 height:ツリーグリッド(treegrid)の新しい高さ。 |
| fixRowHeight | id | 指定された行の高さを固定します。 |
| loadData | data | ツリーグリッド(treegrid)のデータを読み込みます。 |
| load | param | 最初のページを読み込んで表示します。このメソッドはバージョン 1.3.4 以降で使用できます。 コード例:
// load and send some request parameters
$('#tg').treegrid('load', {
q: 'abc',
name: 'name1'
});
|
| reload | id | ツリーグリッド(treegrid)のデータを再読み込みします。'id' パラメーターが渡された場合はツリーの指定された行を再読み込みし、それ以外の場合はツリーのすべての行を再読み込みします。 コード例:
$('#tt').treegrid('reload', 2); // reload the row which value is equals to 2
$('#tt').treegrid('reload'); // reload the all rows
$('#tt').treegrid('reload', {id:2, q:'abc'}); // reload the specified row with 'q' parameter passing to server
|
| reloadFooter | footer | フッターデータを再読み込みします。 |
| getData | none | 読み込まれたデータを取得します。 |
| getFooterRows | none | フッターデータを取得します。 |
| getRoot | none | ルートノードを取得し、ノードオブジェクトを返します。 |
| getRoots | none | ルートノードを取得し、ノード配列を返します。 |
| getParent | id | 親ノードを取得します。 |
| getChildren | id | 子ノードを取得します。 |
| getSelected | none | 選択されたノードを取得して返します。選択されたノードがない場合は null を返します。 |
| getSelections | none | 選択されたすべてのノードを取得します。 |
| getLevel | id | 指定されたノードのレベルを取得します。 |
| find | id | 指定されたノードを見つけて、そのノードデータを返します。 |
| select | id | ノードを選択します。 |
| unselect | id | ノードの選択を解除します。 |
| selectAll | none | すべてのノードを選択します。 |
| unselectAll | none | すべてのノードの選択を解除します。 |
| collapse | id | ノードを折りたたみます。 |
| expand | id | ノードを展開します。 |
| collapseAll | id | すべてのノードを折りたたみます。 |
| expandAll | id | すべてのノードを展開します。 |
| expandTo | id | ルートから指定されたノードを展開します。 |
| toggle | id | ノードの展開/折りたたみ状態を切り替えます。 |
| append | param | 親ノードにいくつかの子ノードを追加します。'param' パラメーターには次のプロパティが含まれます: parent:親ノードの id。割り当てられていない場合は、ルートノードとして追加されます。 data:配列、ノードのデータ。 コード例:
// append some nodes to the selected row
var node = $('#tt').treegrid('getSelected');
$('#tt').treegrid('append',{
parent: node.id, // the node has a 'id' value that defined through 'idField' property
data: [{
id: '073',
name: 'name73'
}]
});
|
| insert | param | 指定されたノードの前または後ろにノードを挿入します。'param' パラメーターには次のプロパティが含まれます: before:前に挿入するノードの id 値。 after:後ろに挿入するノードの id 値。 data:新しいノードデータ。 コード例:
// insert a new node before the selected node
var node = $('#tt').treegrid('getSelected');
if (node){
$('#tt').treegrid('insert', {
before: node.id,
data: {
id: 38,
name: 'name38'
}
});
}
このメソッドはバージョン 1.3.1 以降で使用できます。 |
| remove | id | ノードとその子ノードを削除します。 |
| pop | id | ノードをポップして、そのノードを削除した後、その子ノードを含むノードデータを返します。このメソッドはバージョン 1.3.1 以降で使用できます。 |
| refresh | id | 指定されたノードを更新(リフレッシュ)します。 |
| update | param | 指定されたノードを更新します。'param' パラメーターには次のプロパティが含まれます: id:更新されるノードの id。 row:新しい行データ。 コード例:
$('#tt').treegrid('update',{
id: 2,
row: {
name: 'new name',
iconCls: 'icon-save'
}
});
このメソッドはバージョン 1.3.1 以降で使用できます。 |
| beginEdit | id | ノードの編集を開始します。 |
| endEdit | id | ノードの編集を終了します。 |
| cancelEdit | id | ノードの編集をキャンセルします。 |
| getEditors | id | 指定された行のエディターを取得します。各エディターには次のプロパティがあります: actions:エディターが実行できるアクション。 target:ターゲットエディターの jQuery オブジェクト。 field:フィールド名。 type:エディターのタイプ。 |
| getEditor | param | 指定されたエディターを取得します。param パラメーターには2つのプロパティが含まれます: id:行ノードの id。 field:フィールド名。 |
jQuery EasyUI プラグイン その他の拡張