在当前项目中,我们使用的是easyui ,在此记录下来。
我目前使用到的只有一个树表格。我表格的组建方式在后台组装数据成List,用MVC的Json返回给easyui。
树表格的编辑:datagrid.treegrid("beginEdit", editRowID); datagrid.treegrid("endEdit", editRow);
更新数据:var data = datagrid.treegrid('getChanges', 'updated'); var data = datagrid.treegrid('getChanges', 'inserted');
在这遇到一个问题,就是在easyui 中,如果更新了数据,如果不更新表的状态或者刷新页面,那么上次更新的数据会再次的更新。一般用datagrid.treegrid('acceptChanges');来更新状态。
还有一个问题,那就是刷新表格,一般树表格是继承了datagrid的,但是,reload等方法是不起作用的。原因是,如果你的data属性不是路径,而是json格式的数据话,就不能自动更新。
由于业务的需要。在表格中, 不同行的某些列不能被编辑(行不同,不能被编辑的列也不同)。我的做法是
首先让那一行所有的单元格都能被编辑。datagrid.treegrid("beginEdit", rows[0].ID);
然后取得那行的所有编辑器。var editors = datagrid.treegrid("getEditors", rows[0].ID);
被编辑那行可以被编辑的列或者不能被编辑的列的index(就是能被编辑的列都是标题的最后一行,获取可以编辑或不可编辑列在那一行中的位置索引)。var arrIndex = new Array(); // 我这是可以编辑的列的index
最后循环编辑器,去掉编辑的文本框。
for (var k = 0; k < editors.length; k++) {
if (arrIndex.indexOf(k) < 0) {
var a = $('.datagrid-cell.datagrid-cell-c1-' + editors[k].field + '.datagrid-editable');
a.remove();
}
}