jQuery MiniUI

标题: 一个DAGAGRID的新功能 [打印本页]

作者: xiaozan    时间: 2012-10-23 10:53:23     标题: 一个DAGAGRID的新功能

本帖最后由 xiaozan 于 2012-10-23 10:54 编辑

这个功能的需求是这样的:
写一个组件来管理系统中所有的datagrid的列显示与否,显示名称

我实现的方法是这样:
通过HTML代码创建了DATAGRID,这个组件再通过mini.encode(grid.getColumns()),将得到的值存到数据库中

下次打开这个页面,发现数据库里有值,就取出来直接 grid.setColumns(data)

这样做发现一个问题,当我mini,encode(grid.getColumns())这一步时,有些columns对象非常复杂(例如带编辑功能的CELL时),造成JS无响应

不知道 有什么 解决方法,或者有更新的实现方式来完成这个需求


谢谢

作者: factory    时间: 2012-10-23 11:02:16

列的显示与否,你可以用隐藏列来做
示例:http://miniui.com/demo/#src=datagrid/hidecolumn.html
显示名称,可以通过更新列来做
grid.updateColumn("name", {header: ""});
作者: xiaozan    时间: 2012-10-23 11:11:52

[attach]809[/attach]

我的组件是这样的,如果单 是显示用hideColumn反而还简单了,但是还有一个排序呢

作者: xiaozan    时间: 2012-10-23 12:05:57

解决了

var columns = pGrid.getColumns();
                                            for (var i=0;i< columns.length;i++){
                                                    var column = columns
                                                   
                                                    for (var obj in column){
                                                            //当是OBJECT时,都不是必要的参数可以舍去
                                                            if ((typeof(column[obj])=="object" && obj!="editor") || obj.substr(0,1)=='_'){
                                                                    delete column[obj];
                                                            }
                                                    }
                                                    grid.addRow({"gridId":pGrid.getId(),"field":column.field,"synax":mini.encode(column),"defaultHeader"!$.isFunction(column.header)&&column.type!="checkcolumn")?column.header:"[控件]","header"!$.isFunction(column.header)&&column.type!="checkcolumn")?column.header:"[控件]","display":true,"export":true,"print":true,"orderList":i+1})




关键代码在这if ((typeof(column[obj])=="object" && obj!="editor") || obj.substr(0,1)=='_'){
                                                                    delete column[obj];
                                            }





欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2