国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > JS > 正文

ExtJs使用自定義插件動(dòng)態(tài)保存表頭配置(隱藏或顯示)

2024-05-06 16:46:12
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

關(guān)于保存列表表頭的配置,一般我們不需要與后臺(tái)交互,直接保存在 localStorage 中就能滿足常規(guī)使用需求(需要瀏覽器支持)。

直接上代碼,插件:

Ext.define('ux.plugin.ColumnCustom', {  alias: 'plugin.columnCustom',  xtype: 'columnCustom',  //初始化  init: function (gridPanel) {    var me = this;    me.owner = gridPanel;    //根據(jù)已有配置項(xiàng)設(shè)置表頭狀態(tài)    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;      //只有常規(guī)列才有顯式的dataIndex,序號(hào)列等非常規(guī)列應(yīng)排除在外      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;      //只有常規(guī)列才有顯式的dataIndex,序號(hào)列等非常規(guī)列應(yīng)排除在外      if (!dataIndex) return;      config[dataIndex] = column.isHidden();    });    //使用xtype作為索引是相對(duì)可靠的做法    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 || {};  }});

如何使用:由于這是一個(gè)比較常規(guī)的需求,因此這里默認(rèn)給所有的gridPanel配置此插件,并支持手動(dòng)配置參數(shù)禁用之,考慮復(fù)寫gridPanel類。

代碼如下:

Ext.define('override.grid.Panel', {  override: 'Ext.grid.Panel',  requires: ['ux.plugin.ColumnCustom'],  columnCustomDisable: false,  initComponent: function () {    var me = this;    me.callParent();    //默認(rèn)全部加上自動(dòng)保存表頭插件,此處追加一個(gè)可配屬性來(lái)禁用此插件    if (!me.columnCustomDisable) {      me.addPlugin('columnCustom');    }  }});

總結(jié)

以上所述是小編給大家介紹的ExtJs使用自定義插件動(dòng)態(tài)保存表頭配置(隱藏或顯示),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VeVb武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 丰县| 抚松县| 普陀区| 通海县| 利川市| 黎平县| 宜城市| 阳高县| 新安县| 明星| 龙井市| 朔州市| 宁阳县| 定州市| 图们市| 古田县| 阜宁县| 吉安市| 南安市| 兰溪市| 太仓市| 黎城县| 灵山县| 微山县| 梧州市| 平南县| 东乡| 会同县| 定日县| 斗六市| 栾城县| 车险| 易门县| 鸡东县| 乾安县| 竹溪县| 天气| 桐梓县| 安宁市| 康乐县| 博湖县|