2017-01-30 4 views
16

グリッドスクロールを表示させるためにscrollIntoView()を配置しました。 gridContainerに新しいグリッドを追加すると、このメソッドを使用します。これは私がデバッガからチェックできます。 それが延期機能に到達したら、私のscrollIntoView()正確に延期するものは何ですか?

grid.body.dom.scrollIntoView(); 

しかし、それが機能していませんscrollIntoView()。誰もこれをスキップする方法をお勧めしますか?これをやりなおす方法とこれをスキップする方法。また、私はgrid.focus()を使用しており、同じことが起こっています。グリッドは表示されていますが、デバッガから表示されずに表示されます。

defer: function(fn, millis, scope, args, appendArgs) { 
    fn = Ext.Function.bind(fn, scope, args, appendArgs); 
    if (millis > 0) { 
    return setTimeout(function() { 
     if (Ext.elevateFunction) { 
     Ext.elevateFunction(fn); 
     } else { 
     fn(); 
     } 
    }, millis); 
    } 
    fn(); 
    return 0; 
}, 
+1

'defer'は基本的に' setTimeout'と似ています。しかし、私はあなたの質問の残りの部分では本当に明確ではありません。 –

+0

@EvanTrimboliタイムアウトしたくない場合はどうすればいいですか?このコードが動作していない時間がたつとグリッドに 'grid.body.dom.scrollIntoView();'を与えています。 – David

+2

十分な情報がないのに、 'defer'呼び出しの原因は何ですか? Scroller APIを使用していないのはなぜですか? 'grid.body.dom'はスクロールするのに適していません。 –

答えて

3

問題を回避するには、コンポーネントにスクロールするが、他のカードの上に中心容器用card layoutを使用して、新しいグリッドを表示しないであろう。

var centerCt; // reference to your center container 
var centerLayout = centerContainer.getLayout(); 
var newGrid = Ext.create('Ext.grid.Panel', {}); 
centerCt.add(newGrid); 
centerLayout.setActiveItem(newGrid); 

私はSencha Fiddleを作成しました。

+0

私はvboxを使用していて、カードに変更するときに第2グリッドはロードされません。さてあなたが答えで書いたものを試してみて、しばらくしてあなたに戻ってください。 – David

+0

これはすぐに私はここで1つのグリッドを表示しているので、これは動作しません。私はパネルをスクロール可能にする必要があります。 – David

関連する問題