Question

J'essaie d'obtenir un défilement infini au travail et je suis allé à travers les blogs et les poteaux pertinents mais ne pouvant pas comprendre pourquoi, lorsque mon VerticalScroller atteint le nombre de NumFromEdge, il ne déclenche aucune demande au serveur?

ai-je compris cela correctement, que lorsque le défileur vertical atteint le numfromedge, une demande sera tirée par le magasin sur le serveur? qui implique que sur le côté serveur, nous devons gérer l'interrogation et le retour par pages? ou est-ce que je retourne tous les enregistrements à la fois du serveur? Parce que si je définissais le DugeBufferedzone pour dire 100 et purgepagecount sur 0, il y a environ 7 demandes de taille 50 sur le serveur? Mais dans ce cas, comme vous pouvez le constater, cela ne se produit pas sur NumFomEdge, mais juste au début ...

ma grille

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 ....

mon magasin

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
        }

}

J'utilise des contrôleurs de données à ressort et de ressorts au 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;
    }

J'attendais que lorsque la barre de défilement atteindrait dans 10 des 10 derniers enregistrements affichés dans la grille, le magasin enverrait une demande au serveur pour page2 et la limite de la page suivante.

Y a-t-il quelque chose de configuré de manière incorrecte?

Merci d'avance

Était-ce utile?

La solution

Store

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

grille

verticalScroller: {
        numFromEdge: 10,
        trailingBufferZone: 10,
        leadingBufferZone: 10
    },
verticalScrollerType: 'paginggridscroller',
invalidateScrollerOnRefresh: false,
disableSelection:true,

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top