jquery-easyui中datagrid扩展,隐藏显示表头功能
来源:互联网 发布:星际淘宝网起点 编辑:程序博客网 时间:2024/04/30 11:00
今天,后台中需要新增一个功能,用户可以自由选择显示的列,之后保存到本地localStroage中。所以扩展了easyui中datagrid的onHeaderContextMenu方法。
使用方法:
_this.$table.datagrid(_.extend({ fit: true, border: false, striped: true, method: "get", pagination: true, singleSelect: true, loadMsg: "加载数据中...", columns: _this.getTableColumns(), onResize: function () { if (_this.$ajaxDialog) { _this.$ajaxDialog.dialog("restore"); _this.$ajaxDialog.dialog("maximize"); } }, onSelect: function (rowIndex, rowData) { _this.currentRow = rowData; _this.currentRowIndex = rowIndex; _this.toolbarViewModel.disabled(false); }, onLoadError: function () { // $.messager.alert("提示", "服务器忙,请稍后再试!", "warning"); }, onHeaderContextMenu: function (e, field) { $.fn.easyuiExtension.showHideColumns(_this.$table, { left: e.clientX, top: e.clientY }); e.preventDefault(); }, onRowContextMenu: function (e, rowIndex, rowData) { e.preventDefault(); $(this).datagrid("unselectAll"); $(this).datagrid("selectRow", rowIndex); if (_this.$menu) { _this.$menu.menu("show", { left: e.pageX, top: e.pageY }); } } }, options));
$.fn.easyuiExtension = { showHideColumns: function ($table, position) { var $menus = $(document.createElement("div"));
var canClick = true, nonHiddenCount = 0;
var columnsFields = $table.datagrid("getColumnFields"),
columns = [],
columsDetail;
for (var i in columnsFields) {
columsDetail = $table.datagrid("getColumnOption", columnsFields[i]);
columns.push(columsDetail);
}
if (columns.length) {
$menus.menu({
hideOnUnhover: false,
duration: 200,
onHide: function () {
setTimeout(function () {
$menus.menu("destroy");
}, 200);
},
onClick: function (item) {
if (canClick || !item.iconCls) {
$table.datagrid((item.iconCls ? "hideColumn" : "showColumn"), item.id);
}
}
});
for (var i in columns) {
var item = columns[i];
!item.hidden && nonHiddenCount++;
$menus.menu("appendItem", {
text: item.title,
id: item.field,
iconCls: item.hidden ? "" : "icon-ok"
});
}
canClick = nonHiddenCount > 1;
$menus.menu("show", position); } } };
效果如下:
1 0
- jquery-easyui中datagrid扩展,隐藏显示表头功能
- 扩展EasyUI datagrid 增加表头右键菜单功能,可动态对列进行显示和隐藏
- jquery-easyui拓展之datagrid复合表头列锁定/解锁和列隐藏/显示
- JQuery EasyUI 隐藏datagrid表头的复选框
- easyui datagrid将表头的checkbox不显示(隐藏)
- jquery easyui 隐藏和显示datagrid
- jquery easyui 中扩展datagrid自定义方法
- jquery-easyui中为DataGrid创建复杂表头
- 隐藏easyui-datagrid表头的checkbox
- JQuery easyui DataGrid隐藏某一列的功能
- Flex 中DataGrid 隐藏表头
- jquery easyui -datagrid(悬浮,隐藏)
- easyui的datagrid、treegrid增加表头菜单,用于显示或隐藏列
- easyui的datagrid、treegrid增加表头菜单,用于显示或隐藏列
- Jquery easyui datagrid 模板,动态切换表头
- JQuery EasyUI datagrid 复杂表头处理
- JQuery EasyUI datagrid 复杂表头处理
- jQuery EasyUI-DataGrid动态加载表头
- WinCE下BSP中的Dirs文件和Sources文件
- uva---232--- Crossword Answers
- CSS样式应用积累
- 求两个集合的交集
- BUG现象与对应0001文件打开没关闭
- jquery-easyui中datagrid扩展,隐藏显示表头功能
- wpa_cli调试工具的使用
- sql 字段截取匹配的方法
- 抽屉效果功能实现
- 7,嵌入式Linux之系统时钟和UART实验
- 让IE支持HTML5
- IOS——获取当前运营商(获取漫游接入网络的运营商)
- 【jsp】script标签属性使用type还是language?
- C#设计模式之1——简单工厂模式