【问题标题】:ExtJs 4 : hide/show grid columns with grid that uses ArrayStoreExtJs 4:使用 ArrayStore 的网格隐藏/显示网格列
【发布时间】:2015-06-10 08:58:15
【问题描述】:

ExtJs 4 :
如何动态显示和隐藏使用 ArrayStore 作为其存储的网格的列?
我找到了这个解决方案
ExtJs 4: How do I hide/show grid columns on the fly?
我知道每列的 setVisible(true | false) 是必需的,但是当我要求 grid.columns 时,我得到一个 Objects 数组,并且作为 Objects,它们没有 setVisible 函数。 如果我使用列的 id 对每个特定列使用 Ext.getCmp(..) ,那么我将返回一个 Column 对象,并且我能够访问 SetVisible 函数.. 但它是也可以从网格中获取这些 Column 对象的数组吗?

【问题讨论】:

    标签: extjs


    【解决方案1】:

    你可以在这里找到更多http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.grid.column.Column

    你可以使用 show() 和 hide() 方法

     grid.columns[index].show();
    

    或者绝对可以使用 setVisible() 方法;

     grid.columns[index].setVisible(false);
    

    【讨论】:

      【解决方案2】:

      ExtJs 4: How do I hide/show grid columns on the fly? 中的解决方案应该适合您。您使用的是哪个 ExtJS 的确切版本?

      当使用 grid.columns 时,您返回的对象数组是 Column 对象。因此,以下代码(如链接答案中详述)应该可以工作。

      grid.columns[0].setVisible(false);
      

      查看此GridPanel Fiddle 以获取实时示例。

      【讨论】:

        【解决方案3】:

        你应该这样做:

        var myGrid = Ext.getCmp("Your_GRID");
        var cols = myGrid.columns;
        //index of the column to hide.
        cols[index].setVisible(!cols[index].isVisible())
        

        这是我在小提琴中的工作示例: https://fiddle.sencha.com/#fiddle/oca

        【讨论】:

        • 这很奇怪,这正是我所做的,但 Chrome 说“setVisible”不是一个函数,开发者工具将 col 显示为“对象”。不管怎样,您知道是否可以在隐藏/显示后调整网格的宽度,使其适合显示的列数?
        • 这很奇怪,我制作的 ext 版本使用的是 4.2.0,您使用的是旧版本吗……但我认为这也必须是旧版本。我还更新了我的小提琴(fiddle.sencha.com/#fiddle/oca),以便在隐藏列时调整列的大小。这是在flex 的帮助下实现的
        猜你喜欢
        • 2011-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多