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