Clear Up
SharpKit Reference

Sorter Class

Represents a single sorter that can be applied to a Store. The sorter is used to compare two values against each other for the purpose of ordering them. Ordering is achieved by specifying either:

  • A sorting property
  • A sorting function

As a contrived example, we can specify a custom sorter that sorts by rank:

  
    Ext.define('Person', {
            extend: 'Ext.data.Model',
            fields: ['name', 'rank']
            });
            Ext.create('Ext.data.Store', {
            model: 'Person',
            proxy: 'memory',
            sorters: [{
            sorterFn: function(o1, o2){
            var getRank = function(o){
            var name = o.get('rank');
            if (name === 'first') {
            return 1;
            } else if (name === 'second') {
            return 2;
            } else {
            return 3;
            }
            },
            rank1 = getRank(o1),
            rank2 = getRank(o2);
            if (rank1 === rank2) {
            return 0;
            }
            return rank1 < rank2 ? -1 : 1;
            }
            }],
            data: [{
            name: 'Person1',
            rank: 'second'
            }, {
            name: 'Person2',
            rank: 'third'
            }, {
            name: 'Person3',
            rank: 'first'
            }]
            });
            

Namespace: Ext.util

Base Types

Derived Types

Constructors

Fields

Name Description
direction The direction to sort by. Defaults to: "ASC"
property The property to sort by. Required unless sorterFn is provided. The property is extracted from the object directly and compared for sorting using the built in comparison operators.
root Optional root property. This is mostly useful when sorting a Store, in which case we set the root to 'data' to make the filter pull the property out of the data object of each item
sorterFn A specific sorter function to execute. Can be passed instead of property. This sorter function allows for any kind of custom/complex comparisons. The sorterFn receives two arguments, the objects being compared. The function should return:
  • -1 if o1 is "less than" o2
  • 0 if o1 is "equal" to o2
  • 1 if o1 is "greater than" o2
  • transform A function that will be run on each value before it is compared in the sorter. The function will receive a single argument, the value.

    Methods

    Name Description
    setDirection(JsString) Set the sorting direction for this sorter.
    toggle() Toggles the sorting direction for this sorter.
    updateSortFunction(Delegate) Update the sort function for this sorter.
    © Copyright 2005-2011 SharpKit. All rights reserved.