1

我已经覆盖了 extjs 的隐藏列功能,它工作正常。当该列被赋予 hidden:true 时,在第一次页面加载期间,我的隐藏功能不起作用。当我隐藏/显示列时,它正在工作。在页面加载期间也需要启用相同的功能

columnhide: function() {
    var cell = this.getEl().query('.x-grid-cell-inner');
    var collen = grid.columns.length;
    var i = 1;
    for (var y = i; y < cell.length; y = y + collen) {
        for (var x = 0; x < cell.length; x++) {
            if (x == y) {
                cell[x].style.display= "none"; 
            }
        }
    }
} 
4

1 回答 1

2

你是对的,只有在列被渲染columnhide隐藏时才会触发该事件。

使当前代码工作的最简单方法是调用hide()列,而不是使用hidden选项。

hidden: true在列配置中替换为以下内容即可:

    ,listeners: {
        // we want to catch the event only the first time it is fired
        single: true
        ,afterrender: function() {
            this.hide();
        }
    }

这段代码会为你想要隐藏的列添加一个监听器,并且在列被渲染之后,它会调用它的hide()方法。这将触发您的事件等。

于 2013-06-07T01:16:22.113 回答