返回顶部
首页 > 资讯 > 前端开发 > VUE >ExtJs怎么使用自定义插件动态保存表头配置
  • 232
分享到

ExtJs怎么使用自定义插件动态保存表头配置

2024-04-02 19:04:59 232人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关Extjs怎么使用自定义插件动态保存表头配置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。关于保存列表表头的配置,一般我们不需要与后台交互,直

这篇文章将为大家详细讲解有关Extjs怎么使用自定义插件动态保存表头配置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

关于保存列表表头的配置,一般我们不需要与后台交互,直接保存在 localStorage 中就能满足常规使用需求(需要浏览器支持)。

直接上代码,插件:

Ext.define('ux.plugin.ColumnCustom', {
  alias: 'plugin.columnCustom',
  xtype: 'columnCustom',
  //初始化
  init: function (gridPanel) {
    var me = this;
    me.owner = gridPanel;
    //根据已有配置项设置表头状态
    me.setColumnConfig(gridPanel);
    gridPanel.on({
      columnschanged: me.saveColumnConfig,
      scope: me
    });
  },
  setColumnConfig: function (gridPanel) {
    var me = this,
      xtype = gridPanel.getXType(),
      currentColumnConfig = me.getCurrentColumnConfig(),
      columnConfig = currentColumnConfig[xtype],
      columns = gridPanel.getColumns();
    if (!columnConfig) return;
    columns.forEach(function (column) {
      var dataindex = column.config.dataIndex;
      //只有常规列才有显式的dataIndex,序号列等非常规列应排除在外
      if (!dataIndex) return;
      column.setHidden(columnConfig[dataIndex]);
    });
  },
  saveColumnConfig: function () {
    var me = this,
      gridPanel = me.owner,
      currentColumnConfig = me.getCurrentColumnConfig(),
      columns = gridPanel.getColumns(),
      xtype = gridPanel.getXType(),
      config = {};
    columns.forEach(function (column) {
      var dataIndex = column.config.dataIndex;
      //只有常规列才有显式的dataIndex,序号列等非常规列应排除在外
      if (!dataIndex) return;
      config[dataIndex] = column.isHidden();
    });
    //使用xtype作为索引是相对可靠的做法
    currentColumnConfig[xtype] = config;
    //localStorage的值类型限定为string类型
    localStorage.setItem('columnConfig', Ext.encode(currentColumnConfig));
  },
  getCurrentColumnConfig: function () {
    var allColumnConfigString = localStorage.getItem('columnConfig'),
      allColumnConfig = Ext.decode(allColumnConfigString, true);
    return allColumnConfig || {};
  }
});

如何使用:由于这是一个比较常规的需求,因此这里默认给所有的gridPanel配置此插件,并支持手动配置参数禁用之,考虑复写gridPanel类。

代码如下:

Ext.define('override.grid.Panel', {
  override: 'Ext.grid.Panel',
  requires: ['ux.plugin.ColumnCustom'],
  columnCustomDisable: false,
  initComponent: function () {
    var me = this;
    me.callParent();
    //默认全部加上自动保存表头插件,此处追加一个可配属性来禁用此插件
    if (!me.columnCustomDisable) {
      me.addPlugin('columnCustom');
    }
  }
});

关于“ExtJs怎么使用自定义插件动态保存表头配置”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: ExtJs怎么使用自定义插件动态保存表头配置

本文链接: https://lsjlt.com/news/68112.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ExtJs怎么使用自定义插件动态保存表头配置
    这篇文章将为大家详细讲解有关ExtJs怎么使用自定义插件动态保存表头配置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。关于保存列表表头的配置,一般我们不需要与后台交互,直...
    99+
    2024-04-02
  • 使用Unity怎么自定义保存日志
    这期内容当中小编将会给大家带来有关使用Unity怎么自定义保存日志,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。using UnityEngine;using System.IO;us...
    99+
    2023-06-15
  • VS Code 常用自定义配置代码规范保存自动格式化
    目录自动保存格式化用户自定义代码片段必装插件 不装活不了那种完整json自动保存格式化 介绍一下我的vscode配置,记录为主,每个人的习惯不一样可以按需调整 必装插件 Pretti...
    99+
    2024-04-02
  • 怎么使用log4j2自定义配置文件位置和文件名
    本篇内容主要讲解“怎么使用log4j2自定义配置文件位置和文件名”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用log4j2自定义配置文件位置和文件名”吧!log4j2自定义配置文件位置和...
    99+
    2023-06-22
  • 怎么使用自定义Maven设置文件
    本文小编为大家详细介绍“怎么使用自定义Maven设置文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用自定义Maven设置文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Mavensettings.x...
    99+
    2023-06-26
  • Spring Cloud中Feign怎么自定义配置与使用
    这篇文章主要介绍了Spring Cloud中Feign怎么自定义配置与使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring Cloud中Feign怎么自定义配置与使用文章都会有所收...
    99+
    2023-07-02
  • 使用@Scheduled怎么读取动态配置文件
    使用@Scheduled怎么读取动态配置文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。@Scheduled读取动态配置文件application.yml配置文件得配置信息a...
    99+
    2023-06-15
  • 如何使用form-create动态生成vue自定义组件和嵌套表单组件
    这篇文章主要介绍了如何使用form-create动态生成vue自定义组件和嵌套表单组件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用fo...
    99+
    2024-04-02
  • 怎么使用SpringBoot中的Condition更自由地定义条件化配置
    这篇文章给大家分享的是有关怎么使用SpringBoot中的Condition更自由地定义条件化配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Conditional如何使用@Conditional 是 Spri...
    99+
    2023-06-14
  • 怎么使用Docker安装Zabbix并配置自定义监控项
    这篇“怎么使用Docker安装Zabbix并配置自定义监控项”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Docke...
    99+
    2023-06-29
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作