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 に答える