easyui的树表格使用总结

来源:互联网 发布:elton john 知乎 编辑:程序博客网 时间:2024/05/18 14:15

在当前项目中,我们使用的是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();
                                                }
                                            }


0 0
原创粉丝点击