Wie mache ich eine benutzerdefinierte Sortierung für ein Geschäft in ExtJS?

Momentan habe ich den code unten, der überschreibt die Sortierung für alle Filialen. Was ich tun müssen, ist erstellen Sie eine Sortierung für eine einzelne Geschäft. Wie mache ich das?

Ext.override(Ext.data.Store, {
    //override
    createSortFunction: function (field, direction) {
        direction = direction || "ASC";
        var directionModifier = direction.toUpperCase() == "DESC" ? -1 : 1;
        var sortType = this.fields.get(field).sortType;

        //create a comparison function. Takes 2 records, returns 1 if record 1 is greater,
        //-1 if record 2 is greater or 0 if they are equal
        return function (r1, r2) {

            var v1;
            var v2;

            if (field == 'Registered') {
                v1 = sortType(r1.data['AircraftNeedsRegistered']);
                v2 = sortType(r2.data['AircraftNeedsRegistered']);

                if (r1.data['AircraftNeedsRegistered'])
                    r1.data['Register'] = !r1.data['Register'];

                if (r2.data['AircraftNeedsRegistered'])
                    r2.data['Register'] = !r2.data['Register'];

                //store.getAt(rowIndex).data['Registered'] = true;
            }
            else {
                v1 = sortType(r1.data[field]);
                v2 = sortType(r2.data[field]);
            }

            //To perform case insensitive sort
            if (v1.toLowerCase) {
                v1 = v1.toLowerCase();
                v2 = v2.toLowerCase();
            }

            return directionModifier * (v1 > v2 ? 1 : (v1 < v2 ? -1 : 0));
        };
    }

Was ich umsetzen will, ist so etwas wie dieses:

function AircraftStore() {
return new Ext.data.JsonStore(Ext.apply({
    url: AVRMS.ROOT_CONTEXT + "/ssl/json/general/GetAircraftByOwnerId.aspx",
    idProperty: 'OwnerOid',
    baseParams: { OwnerOid: 0 },
    fields: ['AircraftOid', 'NNumber', 'Make', 'Model', 'Seats', 'RegistrationType', 'Airworthy', 'IsFaaAirport', 'AirworthyString', 'IsFaaAirportString', 'Airport', 'AircraftNeedsRegistered', 'Register'],
    sort: function (field, direction) {
        return customSort(field, direction);
    }
}));
    };

function customSort(field,direction) {
    //What do I put here?
}
InformationsquelleAutor Greg Finzer | 2012-09-26
Schreibe einen Kommentar