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 = $('<div/>').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
|
});
|
}
|
};
|