Domanda

sto cercando di ottenere infinite scroll per lavoro e sono andato al blog rilevanti e post, ma non riesce a capire perché quando il mio verticalscroller raggiunge il numfromedge non sparare qualsiasi richiesta al server ?

Io l'ho capito correttamente, che quando lo scroller verticale raggiunge il numfromedge richiesta sarà licenziato dal negozio per il server ?il che implica che il server che abbiamo per gestire l'esecuzione di query e ritorno da pagine ?o devo restituire tutti i record in una sola volta dal server ?Perché se ho impostato il leadingBufferedZone dire 100 e purgePageCount a 0 poi ci sono ci sono circa 7 richieste di ciascuno di dimensione 50 al server ?Ma in questo caso, come puoi vedere, questo non accade su numfromedge ma proprio all'inizio ...

La mia griglia

Ext.define('AM.Something', {
extend : 'Ext.grid.Panel',
alias : 'widget.something',
title : 'something',
store : 'somethingStore',
    verticalScroller: {
        numFromEdge: 10,
        trailingBufferZone: 10,
        leadingBufferZone: 10
    },
verticalScrollerType: 'paginggridscroller',
invalidateScrollerOnRefresh: false,
disableSelection:true,

selType : 'rowmodel',
features : [ somefiltering],
plugins : // Row editing plugin ....

Il Mio Negozio

Ext.define('AM.somethingStore', {
extend: 'Ext.data.Store',
model: 'AM.somethingModel',
autoLoad : true,
autoSync: true,
//    remoteSort:true,
buffered : true,
//    leadingBufferedZone:100,
//    purgePageCount:0,
pageSize:50,
proxy: {
    type: 'ajax',
    api :
        {
            read : 'something/fetch',
            update:'something/update',
            create :'something/create',
            destroy : 'something/delete'
        },
    reader :
        {
        type : 'json',
        root : 'someList.content', // an array of rows for the grid
        successProperty : 'success',
        idProperty : 'id',
        totalProperty: 'total'
        },

    writer :
        {
        type : 'json',
        allowSingle : true
        }

}

Io uso la primavera-dati e molla controller al backend

  @RequestMapping(value = "/something/fetch", method = RequestMethod.GET)
public @ResponseBody
Map<String, ? extends Object> fetchPricing(@RequestParam Integer page,  @RequestParam Integer limit ) {
 Page<Somethings> someList= someService.fetchSomething(page-1,limit);
 Map<String, Object> responseMap = new HashMap<String, Object>();
 responseMap.put("success", true);
 responseMap.put("someList", someList);
return responseMap;
    }

Mi aspettavo che quando la barra di scorrimento vorresti raggiungere, entro 10 dell'ultimo record visualizzati in griglia lo store invia una richiesta al server per pagina2 e il pagesize limite ..

C'è qualcosa di configurato in modo non corretto ?

Grazie in anticipo

È stato utile?

Soluzione

Negozio

//autoLoad : true,
autoSync: true,
//remoteSort:true,
remoteFilter:true,
buffered : true,
leadingBufferedZone:200,
purgePageCount:0,
pageSize:50

Griglia

verticalScroller: {
        numFromEdge: 10,
        trailingBufferZone: 10,
        leadingBufferZone: 10
    },
verticalScrollerType: 'paginggridscroller',
invalidateScrollerOnRefresh: false,
disableSelection:true,
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top