2017-02-13 4 views
2

Nous avons effectué une mise à niveau de ColdFusion 9 vers ColdFusion 2016 et du code que nous utilisions ne fonctionnait plus. Il semble que ColdFusion 2016 utilise Ext/JS 4.1 et je ne suis pas sûr de savoir comment récupérer cette information en utilisant cette version.Comment récupérer la colonne de tri et la direction d'une grille en utilisant Ext/JS 4.1

Code actuel est:

var mygrid = ColdFusion.Grid.getGridObject('rosterGrid'); 
var params = mygrid.getStore().lastOptions.params; 
var sort = params.sort; 
var dir = params.dir; 

Je ne peux pas trouver l'équivalent pour la lastOptions.params en 4.1. J'ai besoin d'obtenir la colonne de tri et la direction de la grille.

+0

Vous devriez regarder Sencha 4.1 docs. Il n'y a plus d'objet lastOptions et params. Pour envoyer et utiliser des données supplémentaires maintenant, vous pouvez utiliser l'objet extraParams de Proxy. Comme je me souviens, vous devriez utiliser store.getProxy(). ExtraParams –

+0

Vous devriez utiliser ceci. 'sortableColumns: Boolean'. Vérifiez le http://docs.sencha.com/extjs/4.0.7/#!/api/Ext.grid.Panel – UDID

Répondre

3

Essayez ceci:

var sorter = mygrid.getStore().sorters.getAt(0); var sort = sorter.property; var dir = sorter.direction;

+0

Il retourne trieur est indéfini. En regardant à travers la documentation Ext/JS je ne vois pas la propriété ou la direction sous trieur –

+0

Documentation - http://docs.sencha.com/extjs/4.1.1/#!/api/Ext.util.Sorter. Ici, le trieur sera indéfini s'il n'y a pas de tri actuellement appliqué au magasin. Dans ce cas, faites ceci: var sort = trieur? sorter.property: ''; Essayez ce violon. Cela fonctionne - http://jsfiddle.net/vdazU/3237/ – inQstvJS

+0

Vous étiez correct il était indéfini si aucune sorte a été donnée à l'origine. Le code de fin ressemble à ceci: \t \t \t \t var sorter = mygrid.getStore(). Sorters.getAt (0); \t if (typeof trieuse! = 'Indéfini') { \t \t \t var sort = sorter.property; \t \t \t var dir = sorter.direction; \t \t} else { \t \t var sort = 'startDate'; \t \t var dir = 'ASC'; \t \t \t \t \t} –

1

Avec l'aide de inQstvJS` answer, voici ce que mon code final ressemblait.

var sorter = mygrid.getStore().sorters.getAt(0); 
if (typeof sorter != 'undefined') { 
    var sort = sorter.property; 
    var dir = sorter.direction; 
} else { 
    var sort = 'startDate'; 
    var dir = 'ASC'; 
}