可编辑的数据网格(Editable DataGrid)
jQuery EasyUI 扩展 - 可编辑的数据网格(Editable DataGrid)
用法
在 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 | 一个 URL,向服务器传送 ‘id‘ 参数来销毁该行。 | 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]); |