jQuery EasyUI 拡張 -編集可能なデータグリッド(Editable DataGrid)
jQuery EasyUI 拡張
使い方
HTMLタグでデータグリッド(datagrid)を作成する
<table id="tt" style="width:600px;height:200px"
title="Editable DataGrid"
singleSelect="true">
<thead>
<tr>
<th field="itemid" width="100" editor="{type:'validatebox',options:{required:true}}">Item ID</th>
<th field="productid" width="100" editor="text">Product ID</th>
<th field="listprice" width="100" align="right" editor="{type:'numberbox',options:{precision:1}}">List Price</th>
<th field="unitcost" width="100" align="right" editor="numberbox">Unit Cost</th>
<th field="attr1" width="150" editor="text">Attribute</th>
</tr>
</thead>
</table>
データグリッド(datagrid)を編集可能にする
$('#tt').edatagrid({
url: 'datagrid_data.json',
saveUrl: ...,
updateUrl: ...,
destroyUrl: ...
});
データグリッドの行をダブルクリックして編集操作を開始できます。また、saveUrl、updateUrl、destroyUrl プロパティを設定して、クライアントとサーバー間のデータを自動的に同期させることもできます。
プロパティ
このプロパティはデータグリッド(datagrid)から拡張されています。以下は編集可能なデータグリッド(edatagrid)に追加されたプロパティです。
| 名前 | 型 | 説明 | デフォルト値 |
|---|---|---|---|
| destroyMsg | object | 行を破棄するときに表示する確認ダイアログのメッセージ。 |
destroyMsg:{
norecord:{ // when no record is selected
title:'Warning',
msg:'No record is selected.'
},
confirm:{ // when select a row
title:'Confirm',
msg:'Are you sure you want to delete?'
}
}
|
| autoSave | boolean | true に設定すると、データグリッドの外側をクリックしたときに編集中の行が自動的に保存されます。 | false |
| url | string | サーバーからデータを取得するURL。 | null |
| saveUrl | string | サーバーにデータを保存し、追加された行を返すURL。 | null |
| updateUrl | string | サーバーにデータを更新し、更新された行を返すURL。 | null |
| destroyUrl | string | サーバーに 'id' パラメータを送信してその行を破棄するURL。 | null |
| tree | selector | 対応するツリーコンポーネントのツリーセレクタを表示する。 | null |
| treeUrl | string | ツリーのデータを取得するURL。 | null |
| treeDndUrl | string | ドラッグ&ドロップ操作を処理するURL。 | null |
| treeTextField | string | ツリーのテキストフィールド名を定義する。 | name |
| treeParentField | string | ツリーの親ノードフィールド名を定義する。 | parentId |
イベント
このイベントはデータグリッド(datagrid)から拡張されています。以下は編集可能なデータグリッド(edatagrid)に追加されたイベントです。
| 名前 | パラメータ | 説明 |
|---|---|---|
| onAdd | index,row | 新しい行が追加されたときにトリガーされます。 |
| onEdit | index,row | 行が編集されたときにトリガーされます。 |
| onBeforeSave | index | 行が保存される前にトリガーされ、false を返すと保存アクションがキャンセルされます。 |
| onSave | index,row | 行が保存されたときにトリガーされます。 |
| onDestroy | index,row | 行が破棄されたときにトリガーされます。 |
| onError | index,row | サーバーエラーが発生したときにトリガーされます。 サーバーは 'isError' プロパティが true に設定された行を返し、エラーが発生したことを示す必要があります。 コード例: //server side code echo json_encode(array( 'isError' => true, 'msg' => 'error message.' ));
//client side code
$('#dg').edatagrid({
onError: function(index,row){
alert(row.msg);
}
});
|
メソッド
このメソッドはデータグリッド(datagrid)から拡張されています。以下は編集可能なデータグリッド(edatagrid)に追加または書き換えられたメソッドです。
| 名前 | パラメータ | 説明 |
|---|---|---|
| options | none | オプション(options)オブジェクトを返します。 |
| enableEditing | none | データグリッド(datagrid)の編集を有効にします。 |
| disableEditing | none | データグリッド(datagrid)の編集を無効にします。 |
| editRow | index | 指定された行を編集します。 |
| addRow | index | 指定された行インデックスに新しい行を追加します。 index パラメータが指定されていない場合は、最後の位置に新しい行を追加します。 コード例:
// append an empty row
$('#dg').edatagrid('addRow');
// append an empty row as first row
$('#dg').edatagrid('addRow',0);
// insert a row with default values
$('#dg').edatagrid('addRow',{
index: 2,
row:{
name:'name1',
addr:'addr1'
}
});
|
| saveRow | none | 編集中の行を保存し、サーバーに送信します。 |
| cancelRow | none | 行の編集をキャンセルします。 |
| destroyRow | index | 現在選択されている行を破棄します。 index パラメータが指定されていない場合は、選択されているすべての行を破棄します。 コード例:
// destroy all the selected rows
$('#dg').edatagrid('destroyRow');
// destroy the first row
$('#dg').edatagrid('destroyRow', 0);
// destroy the specified rows
$('#dg').edatagrid('destroyRow', [3,4,5]);
|
jQuery EasyUI インスタンスをダウンロード
jquery-easyui-edatagrid.zip
jQuery EasyUI 拡張 その他の拡張