2

ツリー パネルのスクロールバーが機能しなくなることがあります。スクロールバーを移動することは引き続き可能ですが、ツリーはもうまったく移動しません。これは、Firefox と Chrome でも同様です。

これが私のツリーパネルのソースです:

var treeStore = Ext.create('Ext.data.TreeStore', { proxy: { type: 'ajax', url: '../tree.pl' } });

var tree = Ext.create('Ext.tree.Panel', { store: treeStore, renderTo: 'tree', title: 'Tree', width: 400, height: 450, rootVisible:false, dockedItems: [{ xtype: 'toolbar', dock: 'bottom', items: [ { xtype: 'tbspacer', width: 340 }, { text: 'Search', handler: function(){ names = []; Ext.Array.each(tree.getView().getChecked(), function(rec){ names.push(rec.get('text')); });

                    resultStore.load({
                        params:{
                            search_type: 'tree',
                            tree_nodes: names.join('II'),
                        }
                    });
                }
    }
    ]
}]

});

4

4 に答える 4

8

私は同じ問題を抱えていました。彼らはカスタムスクロールバーを使用しており、かなりバグがあります(特にクロムで)。カスタム スクローラーを削除するには、以下を構成に追加します。

var tree = Ext.create('Ext.tree.Panel', {
  scroll          : false,
  viewConfig      : {
    style           : { overflow: 'auto', overflowX: 'hidden' }
  },
  // ...
});

私はtreepanelのためにそれを試していません。しかし、それは gridpanel に対しては完全に機能しました (ツリーとグリッドはどちらも Ext.panel.Table の単なる拡張であるため、ソリューションは treepanel でも機能するはずです)。

于 2011-11-07T12:36:42.807 に答える
4

カスタム スクローラーは、Ext 4.1 で再びネイティブ スクロールに置き換えられます。仮想化されたスクローラーは、無限スクロール、列ロックなどをサポートすることを目的としていましたが、4.1 ではそれらを解決し、ネイティブのスクロールバーを保持していると思います。そのために 4.0.x の現在の問題が解決されるとしたら、私は驚きます。

于 2011-11-07T17:24:26.837 に答える
0

メインライブラリのリソースの下にあるext-all.cssファイル内にあるEXT4.0では、これが機能しない本当の理由です。このcssファイルのコーダーは、グリッドセルがoverflow: hidden;(3324行目あたり)次のようになっている必要があると判断しました。

.x-grid-cell {
    overflow: hidden;
    font: normal 13px tahoma, arial, verdana, sans-serif;
    user-select: none;
    -o-user-select: none;
    -ms-user-select: none;
    -moz-user-select: -moz-none;
    -webkit-user-select: none;
    cursor: default
}

.x-grid-cell-inner {
    overflow: hidden;
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis;
    padding: 3px 6px;
    white-space: nowrap
}

最善の方法は、両方のクラスを継承するようにオーバーフローを設定することです。この問題は魔法のように解消されます。

残っているのはグリッドテーブルの境界線だけですが、cssスタイルをcssに配置するだけで対処できます。ext-all.cssファイルに配置しないことをお勧めします。

.x-grid-table {
    border: none !important;
    width: auto !important;     
}

これにより、を使用するすべてのスタイルで変更されることを覚えておいて.x-grid-cellください。

于 2012-02-22T20:12:49.837 に答える
0

Ext 4.0.7 を使用しています。

スクロール:真

私のために働きます。しかし、何らかの理由で、誰かが追加しました:

レイアウト: アンカー

動作を停止させていたツリーパネルの構成に。それが機能しscroll: trueない場合は、誰かがレイアウトを追加して削除したかどうかを確認してください。

それが役立つことを願っています。

于 2012-04-18T16:38:36.560 に答える