Une fonction pour concaténer les valeurs d'un champ dans un store

Neil McGuigan

Traducteur

vermine

Cet article est la traduction de A function to concatenate field values in a store publié sur ExtJS Tutorials.

- Titre : Une fonction pour concaténer les valeurs d'un champ dans un store

- Auteur : Neil McGuigan

- Traducteur : vermine

- Parution : 21 août 2012

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2012 Neil McGuigan. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Explications

- II. Remerciements

I - Explications

Voici une fonction pour concaténer les valeurs d'un champ dans un store. Cette fonction est similaire à la fonction Store.sum();.

Ext.data.Store.override({

concat: function(field, grouped, separator){

if(typeof separator === 'undefined'){
separator = ', ';
}

if (grouped && this.isGrouped()) {
return this.aggregate(this.getConcat, this, true, [field, separator]);
} else {
return this.getConcat(this.data.items, field, separator);
}
},

getConcat: function(records, field, separator){
var result = [];
var i = 0;
var len = records.length;

for(; i < len; ++i){
result.push(records[i].get(field));
}
return result.join(separator);
}
});

Par exemple, si le store a le champ email et qu'il contient les valeurs 'a@b.ca' et 'b@c.com', alors store.concat('email') va retourner 'a@b.ca, b@c.com'.

II - Remerciements

Cet article a été publié avec l'aimable autorisation de Neil McGuigan. L'article original peut être lu sur le blog ExtJS Tutorials : A function to concatenate field values in a store.
Je remercie également ClaudeLELOUP pour sa relecture attentive.