IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ext JS / Sencha Discussion :

[ExtJS 4.1] Viewport et item Grid.Panel, stateFull pas pris en compte


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Federico_muy_bien
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 154
    Par défaut [ExtJS 4.1] Viewport et item Grid.Panel, stateFull pas pris en compte
    Bonjour tout le monde !
    J'ai un problème pour sauvegarder l'état d'un panel de type Grid contenu dans un viewport.
    En dehors de celui ci ça marche mais une fois intégré au viewport l'état n'est plus sauvegardé/chargé (colonnes cachées, tailles des colonnes et ordre des colonnes dans le grid.Panel). La taille du viewport et son état (collapsed ou non) est bien restauré, lui.
    Donc j'ai essayé de mettre stateFull un peu partout...

    Un petit peu d'aide ne serait pas de refus.
    Merci d'avance.

    Code ExtJS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    ExtCart.grid = {};
     
    ExtCart.grid.myStore = Ext.create('Ext.data.Store', {
        storeId: 'myStore',
        model: 'ExtCart.DefaultRecord',
        groupField: 'type',
        proxy: {[...]},
        autoLoad : true,
     
        stateful: true,
        stateId: 'dataStoreSateId',
        stateEvents: ["columnmove", "columnresize", "sortchange", "show", "hide"],
        initStateEvents : function(){
        	this.colModel.on('hiddenchange', function(){ this.saveState; });
    	}
    });
     
    ExtCart.grid.myGrid = Ext.create('Ext.grid.Panel', {
    	viewConfig : {
            plugins : {
                ddGroup: 'GridExample',
                ptype: 'gridviewdragdrop',
                enableDrop: false
            }
        },
        store: ExtCart.grid.myStore,
        columns : ExtCart.grid.column.config,
        enableDragDrop : true,
        ddGroup : 'gridDDGroup',
        features : [ExtCart.grid.groupingFeature],
        frame : true,
        multiSelect: true,
        tbar: ExtCart.grid.tb,
        listeners : {
        	viewready : function(component) {
        		if (typeof(hideStatus) != 'undefined' && hideStatus == true) {
        			for(i=0; i<component.columns.length; i++) {
        				var column = component.columns[i];
        				if (column.dataIndex == 'status') {
        					column.hide();
        					break;
        				}
        			}
        		}
        	}
        },
     
        stateful: true,
        stateId: 'gridPanelStateId',
        stateEvents: ["columnmove", "columnresize", "sortchange", "show", "hide"],
        initStateEvents : function(){
        	this.colModel.on('hiddenchange', function(){ this.saveState; });
        }
    });
     
    Ext.onReady(function(){
     
        var viewport = Ext.create('Ext.container.Viewport', {
        	 id: 'viewport',
             layout:'border',
     
             items:[{
             	region:'north',
            	id:'north-panel',
    		layout:'fit',
    		border: false,
    	        preventBodyReset: true,
    	        contentEl : 'navBar'
             },{
             	region:'east',
            	id:'east-panel',
            	title: 'label',
    		layout:'fit',
    		width: 300,
    	        minWidth: 100,
    	        maxWidth: 800,
    	        collapsible: true,
    	        split : true,
    	        preventBodyReset: true,
    	        resizable : true,
    	        margins:'0 0 0 0',
    	        cmargins:'0 3 0 0',
    		items: [ ExtCart.grid.myGrid ],
     
    		stateful: true,
    		stateId: 'eastPanelStateID',
    		stateEvents: ["columnmove", "columnresize", "sortchange", "show", "hide"],
    		initStateEvents : function(){
    			this.colModel.on('hiddenchange', function(){ this.saveState; });
    		}
             },{
            	region:'center',
     		id:'center-panel',
     		layout: 'fit',
     		border: false,
     		collapsible: false,
     		preventBodyReset: true, 
     		contentEl : 'contentBox',
     		autoScroll:true
    	},{
    		region:'south',
    		id:'south-panel',
    		layout:'fit',
    		height:25,
    		contentEl : 'footer'
    	}]		
         });
     });

  2. #2
    Membre confirmé Avatar de Federico_muy_bien
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 154
    Par défaut
    Bon ba j'ai trouvé.
    Vous ne pouviez pas m'aider puisque c'était le cookieProvider qui était défini trop tard (après le gridPanel) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Effectivement le provider est la première chose à définir dans une appli utilisant statefull

    A+JYT

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extjs 4 ajouter une ligne dans un grid panel
    Par MadMax4 dans le forum Ext JS / Sencha
    Réponses: 6
    Dernier message: 28/06/2012, 16h21
  2. [Grid Panel] (auto) dimensionnement
    Par Invité dans le forum Ext JS / Sencha
    Réponses: 0
    Dernier message: 13/04/2011, 16h05
  3. Pagination Grid Panel
    Par abraxis dans le forum Ext JS / Sencha
    Réponses: 0
    Dernier message: 09/03/2011, 11h17
  4. grid.Grid Panel Erreur
    Par Tiolebucheron dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 31/01/2011, 09h36
  5. Afficher une date dans un grid Panel
    Par bj304075 dans le forum Ext JS / Sencha
    Réponses: 2
    Dernier message: 13/05/2009, 08h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo