Ir para conteúdo


Foto

[RESOLVIDO] Bug em plugin listpaging


  • Por favor, faça o login para responder
1 resposta neste tópico

#1 Felipe Duardo

Felipe Duardo

    Novato

  • Membros
  • PipPip
  • 13 posts

Postado 23 August 2012 - 10:17

Galera,

tenho uma List que é gerada através de uma pesquisa, nessa lista eu tenho o plugin listpaging e pullrefresh,
ambos funcionam perfeitamente. O bug esta quando nessa lista eu navego pelas paginas, no caso clicando
no "More", digamos 4 vezes, fico na pagina 4, com um limit de 15 e um start de 45, Ok?! então ao voltar até
a pagina de filtro e fazer uma nova pesquisa a lista é exibida perfeitamente, mas ai vem o problema ao clicar
no "More" ao invés de exibir os próximos 15 registros, no caso pagina 2, limit 15, start 15, ele não zera os indices
da ultima paginação da ultima paginação e os dados do indice de paginação ficam, pagina 5, limit 15, start 60
compreendem?

meu store...

App.stores.Lista = new Ext.data.JsonStore({
    model           : 'Lista',
    idProperty      : 'cod',
    pageSize        : 15,
    autoLoad        : false,
    clearOnPageLoad : false,
    proxy: {
        type : 'scripttag',
        url  : API,
        reader: {
            type: 'json',
            root: 'items'
        }
    },
    extraParams: {
        format:'json'
    },
    getGroupString  : function (record){
        if (record && record.data.data)
            return record.get('data').format('d/m/Y');
        else
            return '';
    }
});

e no controller

               beforerender: function(){
                    if(options.codigo!==undefined){
                        var listaStore = App.stores.Lista;

                        listaStore.getProxy().extraParams.value  = options.value;
                        listaStore.getProxy().extraParams.filter   = options.filter;
                        listaStore.getProxy().extraParams.auth   = modelSession.get('authToken');

                        App.stores.Lista.load();
                    }
                }

caso não tenha ficado claro, essa lista é carrega com dados da minha API, e na primeira requisição
o store envia apenas o limit, na minha API fica assim...

                        $limite      = (int)$_REQUEST['limit'];
			$start      = (int)$_REQUEST['start'];

			if ($limite > 0 && $start > 0){
				$filtro = ' LIMIT '. $start .', '. $limite;
			} elseif ($limite > 0){
				$filtro = ' LIMIT '. $limite;
			} else {
				$filtro = ' LIMIT 25';
			}


#2 Felipe Duardo

Felipe Duardo

    Novato

  • Membros
  • PipPip
  • 13 posts

Postado 23 August 2012 - 11:46

consigui resolver da seguinte forma..

beforerender: function(){
                    if(options.filtro!==undefined && options.value!==undefined){
                        var listaStore = App.stores.Lista;

                        listaStore.getProxy().extraParams.key    = options.value;
                        listaStore.getProxy().extraParams.filtro   = options.filtro;
                        listaStore.getProxy().extraParams.token = modelSession.get('authToken');
                    
                        [b]listaStore.loadPage(1);[/b]
                        listaStore.load();
                    }
                }





0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos