2017-01-30 5 views
16

Ich platzierte scrollIntoView(), um meine Gitterrolle sichtbar zu machen. Wenn ich ein neues Gitter in gridContainer hinzufüge, benutze ich diese Methode. Das funktioniert Ich kann vom Debugger überprüfen. mein scrollIntoView()Was genau tun tun?

grid.body.dom.scrollIntoView(); 

Aber sobald es in defer Funktion erreicht es nicht scrollIntoView() funktioniert. Kann jemand bitte vorschlagen, wie man das überspringt. Was tun und tun, um dies zu überspringen. Auch ich benutze grid.focus() und wieder dasselbe passiert. Grid kommt in Sicht, aber nach dem Debugger kommt keine Anzeige mehr in Sicht.

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' ist im Wesentlichen wie ein' setTimeout'. Aber ich bin nicht wirklich klar in dem Rest Ihrer Frage. –

+0

@EvanTrimboli Was ich tun muss, wenn ich keine Zeitüberschreitung haben möchte. Ich gebe 'grid.body.dom.scrollIntoView();' in meinem Raster nach einiger Zeit funktioniert dieser Code nicht. – David

+2

Es gibt nicht genügend Informationen, was den "Defer" -Ruf verursacht. Warum verwenden Sie die Scroller-API nicht? 'grid.body.dom' ist nicht das richtige Scrollen. –

Antwort

3

wäre eine Behelfslösung, nicht an die Komponente zu bewegen, aber die card layout für die Mittelbehälter und zeigt das neue Gitter auf eine andere Karte zu verwenden.

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

Ich erstellte eine Sencha Fiddle.

+0

Ich benutze vbox und wenn ich auf Karte umschalte, wird kein zweites Gitter geladen. Nun, lass es mich versuchen, was immer du in Antwort geschrieben hast, und komme irgendwann zu dir zurück. – David

+0

Das geht nicht, weil ich hier sofort nur ein Raster zeige. Ich brauche mein Panel, um scrollbar zu sein. – David