Skip to content

Editable DataGrid(可编辑数据表格)

使用案例

在HTML标签里面创建数据表格

html
<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>

创建编辑器

javascript
$('#tt').iEdatagrid({
    url: 'datagrid_data.json',
    saveUrl: ...,
    updateUrl: ...,
    destroyUrl: ...
});

现在你可以通过双击数据表格的行开始编辑操作。你也可以设置saveUrl,updateUrl,destroyUrl 属性来自动从客户端同步数据到服务器端。

属性

可编辑表格控件的属性扩展自DataGrid(数据表格),可编辑表格控件新增的属性如下:

属性名属性值类型描述默认值
destroyMsgobject销毁行的时候显示的确认对话框消息。见下方代码示例。
autoSaveboolean设置为true时,在点击表格外部的时候自动保存编辑的行。false
urlstring通过URL向服务器检索数据。null
saveUrlstring通过URL保存数据到服务器并返回添加的行。null
updateUrlstring通过URL更新数据到服务器并返回更新的行。null
destroyUrlstring通过URL将'id'参数发送到服务器以销毁行。null
treeselector树选择器指示相对应的树控件。null
treeUrlstring通过URL检索树控件数据。null
treeDndUrlstring通过URL处理拖拽操作。null
treeTextFieldstring定义树的文本字段名称。name
treeParentFieldstring定义树的父节点字段名。parentId
reloadAfterSaveboolean保存成功之后重新加载表格数据false

事件

可编辑表格的事件扩展自DataGrid(数据表格),可编辑表格新增的事件如下:

事件名参数描述
onAddindex,row在添加新行的时候触发。
onEditindex,row在编辑一行数据的时候触发。
onBeforeSaveindex在保存一行记录之前触发,返回false可以取消保存操作。
onSaveindex,row在保存一行记录时触发。
onDestroyindex,row在销毁一样记录时触发。
onErrorindex,row在服务器返回错误的时候触发。服务器端将返回一个包含"isError"属性的json字符串,当该参数等于true时,则表示请求发生了错误。见下方代码示例。

方法

可编辑表格的方法扩展自DataGrid(数据表格),可编辑表格新增或重写的方法如下:

方法名参数描述
optionsnone返回属性对象。
enableEditingnone启用数据表格编辑。
disableEditingnone禁用数据表格编辑。
editRowindex编辑指定行。
addRownone添加一个新的空行。见下方代码示例。
saveRownone保存编辑行并发送到服务器。
cancelRownone取消编辑行。
destroyRownone销毁当前选择的行。见下方代码示例。

属性代码示例

destroyMsg属性示例:

javascript
destroyMsg:{
    norecord:{    // 在没有记录选择的时候执行
        title:'Warning',
        msg:'No record is selected.'
    },
    confirm:{       // 在选择一行的时候执行
        title:'Confirm',
        msg:'Are you sure you want to delete?'
    }
}

事件代码示例

onError事件示例:

javascript
// 服务器端代码
echo json_encode(array(
    'isError' => true,
    'msg' => '请求发生了错误。'
));

// 客户端代码
$('#dg').iEdatagrid({
    onError: function(index,row){
        alert(row.msg);
    }
});

方法代码示例

addRow方法示例:

javascript
// 追加一个空行
$('#dg').iEdatagrid('addRow');

// 在第一行追加一个空行
$('#dg').iEdatagrid('addRow',0);

// 新增一个带默认值的行
$('#dg').iEdatagrid('addRow',{
    index: 2,
    row:{
        name:'name1',
        addr:'addr1'
    }
});

destroyRow方法示例:

javascript
// 销毁所有选择的行
$('#dg').iEdatagrid('destroyRow');

// 销毁首行
$('#dg').iEdatagrid('destroyRow', 0);

// 销毁指定的行
$('#dg').iEdatagrid('destroyRow', [3,4,5]);

基于最新稳定版jQuery EasyUI构建的前端框架