2013-07-08 5 views
6

Ich benutze Sencha Touch List (xtype: list) auf meine Apps, mit ListPaging-Plugin. Es funktioniert wie ein Charme auf die Schaffung unendlicher Effekt, indem autopaging: true eingestellt wird.Sencha Touch List Paging: Limit Nummer des Datensatzes des Geschäfts

ABER, ist meine Frage, wie man die Aufzeichnungen des Ladens (oder Reihen auf der Liste) in eine Anzahl nur, z. B. 50 Aufzeichnungen, behält.

Wenn der Benutzer also nach unten scrollt, wird automatisch die nächste Seite geladen, während die vorherige (aktuelle) Seite entfernt wird und beim Hochscrollen die vorherige Seite geladen wird.

Ziel ist es, die Anzahl der Aufzeichnungen des Ladens zu begrenzen, denn wenn es alle geladen wird (indem Sie weiter runterscrollen), stürzt es das Gerät ab (getestet auf Ipad).

Es macht Sinn, ich habe 40k Datensätze auf db.

+0

Haben Sie die Lösung gefunden? – Hunt

+0

Ich denke, listPaging Plugin wird Ihnen in diesem Fall nicht helfen. Sie müssen die Funktionalität erweitern, um die unteren und ** oberen ** "mehr" Etiketten und Handler zu haben, da, wenn Sie einige Daten während des Scrollens löschen, wenn Sie mit dem Scrollen beginnen, Sie diese Daten zurückladen müssen. – pckill

+0

Hunt, nein, noch keine Lösung. @pckill, ich habe versucht, Plugin basierend auf ListPaging zu bauen, aber die Dinge durcheinander gebracht. Fehler überall. – Lee

Antwort

2

Gestern habe ich an so etwas gearbeitet aber nur mit der nächsten Funktionalität.

Sie können die Methode überschreiben, die die neue Seite im laufenden Betrieb lädt. Es ist loadNextPage() und fügen Sie store.removeAll() hinzu, bevor Sie die nächste Seite anfordern.

In Ihrer Liste:

plugins: [ 
    { 
     type: 'listpaging', 
     autoPaging: true, 
     noMoreRecordsText: null, 
     loadMoreText: null, 
     loadNextPage: function() { 
      var me = this; 
      if (!me.storeFullyLoaded()) { 
       me.getList().getStore().removeAll(); 
       me.getList().setMasked(true); 
       me.getList().getStore().nextPage({ addRecords: true }); 
      } 
     } 
    } 
] 

Dies ist nur für die Next, Es könnte ein wenig komplizierter für die vorherigen sein, aber vielleicht kann dies eine Idee geben. Wahrscheinlich das Hinzufügen eines weiteren cmp an der Spitze der Liste, die feuert store.previousPage()

Hoffe, dass es helps-