var hl = hl ? hl : {}; hl.gridfield = { //从本地数据中获取顺序及显示隐藏 readlocal: function (sDataGridID, aryField) { var aryResult = []; //cookieKey var sCookieKey = window.location.protocol + window.location.pathname + sDataGridID; var sCookieValue = $.cookie(sCookieKey); if (sCookieValue == null || sCookieValue.length == 0) { aryResult = aryField; } else { var arySet = JSON.parse(sCookieValue); //检测字段有无变动 if (this.checkchange(aryField, arySet)) { aryResult = aryField; } else { aryResult = this.formart(aryField, arySet); } } return aryResult; }, //格工化为本地数据 formart: function (aryField, arySet) { var aryResult = []; if (aryField) { for (var field in arySet) { var mField = arySet[field]; for (var i = 0; i < aryField.length; i++) { var oField = aryField[i]; if (oField.field == field) { oField.hidden = mField.hidden; aryResult.push(oField); break; } } } } else { aryResult = aryField; } return aryResult; }, //检测字段有无变动 checkchange: function (aryField, arySet) { if (aryField) { for (var i = 0; i < aryField.length; i++) { var oField = aryField[i]; if (arySet[oField.field]) { } else { return true; } } } return false; }, //创建显示隐藏列菜单 createColumnMenu: function (sDataGridID, e) { this.cmenu = $('
').appendTo('body'); this.cmenu.menu({ onClick: function (item) { if (item.iconCls == 'icon-ok') { $('#' + sDataGridID).datagrid('hideColumn', item.name); this.cmenu.menu('setIcon', { target: item.target, iconCls: 'icon-empty' }); } else { $('#' + sDataGridID).datagrid('showColumn', item.name); this.cmenu.menu('setIcon', { target: item.target, iconCls: 'icon-ok' }); } this.saveLocal(sDataGridID); $('#' + sDataGridID).datagrid("resize"); this.cmenu.menu('show', { left: e.pageX, top: e.pageY }); }.bind(this) }); var fields = $('#' + sDataGridID).datagrid('getColumnFields'); for (var i = 0; i < fields.length; i++) { var field = fields[i]; var col = $('#' + sDataGridID).datagrid('getColumnOption', field); this.cmenu.menu('appendItem', { text: col.title, name: field, iconCls: col.hidden && col.hidden == true ? 'icon-empty' : 'icon-ok' }); } }, //保存本地数据 saveLocal: function (sDataGridID) { var arySet = {}; var fields = $('#' + sDataGridID).datagrid('getColumnFields'); for (var i = 0; i < fields.length; i++) { var field = fields[i]; var col = $('#' + sDataGridID).datagrid('getColumnOption', field); arySet[col.field] = { hidden: col.hidden && col.hidden == true ? true : false }; } //cookieKey var sCookieKey = window.location.protocol + window.location.pathname + sDataGridID; $.cookie(sCookieKey, JSON.stringify(arySet), { expires: 100 }); }, //列显示隐藏事件 colMenuEvent: function (e, field, sDataGridID) { e.preventDefault(); if (!this.cmenu) { hl.gridfield.createColumnMenu(sDataGridID, e); } this.cmenu.menu('show', { left: e.pageX, top: e.pageY }); } };