javascript - 如何使用 ExtJs rowexpander 展开或折叠所有行?

标签 javascript extjs4.2

我看过其他类似问题的答案,但我无法找到任何有效的解决方案。例如,一种解决方案是对网格中的记录进行计数,然后循环调用每条记录的 expandRow(rowNumber)。但是,我在ExtJs 4.2中使用的rowexpander没有这个功能。

最佳答案

我想出了一个解决方案:

expandAll: function (expand) {
    expand = typeof expand !== 'undefined' ? expand : true;

    var grid = this,
        store = grid.getStore(),
        rowExpander = grid.plugins[0],
        nodes = rowExpander.view.getNodes();

    for (var i = 0; i < nodes.length; i++) {
        var node = Ext.fly(nodes[i]);

        if (node.hasCls(rowExpander.rowCollapsedCls) === expand) {
            rowExpander.toggleRow(i, store.getAt(i));
        }
    }
},

我猜测插件的选择不是这样做的正确方法,但我不知道正确的方法。

关于javascript - 如何使用 ExtJs rowexpander 展开或折叠所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21787640/

相关文章:

javascript - npm start 给出错误 : `output.path` needs to be an absolute path or `/`

javascript - 子组件 Prop 是空的,尽管它们是从父组件传递的

javascript - 单击密码切换器时显示/保留键盘

javascript - ExtJS 4.2 中欧洲货币输入的正则表达式

javascript - extjs4 类型错误 : store is undefined

javascript - ionic 框架 3 : Splitting a long article page into small pages

javascript - Bootstrap 边栏扩展子类别

Extjs4-在加载网格后为列提供默认排序

javascript - ExtJS 中 Controller 的职责是什么? Ext.window.Window 实例中的事件?

javascript - Ext.window.MessageBox draggable false,调用hide方法出错