Extjs locked无效,使用enableLocking即可

一、前言

  在使用 extjs 做表格时,由于表格的列太多,我们需要设置一些固定列来查看数据,所以我们需要用到 locked 属性。普通加载 columns 的列是有效的,如果是动态加载的话,使用 locked 无效。

二、解决方案

  解决方案就是填加一个 enableLocking:true 即可。

Ext.define('KitchenSink.view.grid.LockingGrid', {
    extend: 'Ext.grid.Panel',
    xtype: 'locking-grid',
    controller: 'basicgrid',

    requires: [
        'Ext.grid.RowNumberer'
    ],

    title: 'Locking Grid',
    height: 350,
    width: 600,

    store: 'Companies',

    enableLocking : true,//必填 默认是false
    columnLines: true,//显示列边框
    rowLines : false,//显示行边框

    syncRowHeight: false,
    
    columns: [{
        xtype: 'rownumberer'
    }, {
        text: 'Company Name',
        dataIndex: 'name',
        locked: true,
        width: 230,
        sortable: false
    }, {
        text: 'Price',
        dataIndex: 'price',
        lockable: false,

        width: 80,
        sortable: true,
        formatter: 'usMoney'
    },]
});

注意:

  1. 在 columns 不能所以列都锁定,如果有锁定列,必须要有一列不锁定。
  2. 如果布局中有Flex:1 布局是不可以的,必须要width:11具体是数字才可以。
  3. 不知道为什么就看api文档

posted @ 2019-09-02 15:45  周兴兴  阅读(1290)  评论(0编辑  收藏  举报