Filtrage d'un comboxes distance de stocker localement dans ExtJs
J'ai un ExtJs zone de liste déroulante. Son magasin chargé à l'aide de JSON (à l'aide de MyStore de classe ci-dessous). Je veux charger toutes les valeurs pour le magasin, et puis les filtrer avec le texte entré dans la zone de liste modifiable textfield (de préférence à l'aide de la typeAhead fonctionnalité).
Le problème est que je veux faire du filtrage sur le côté client (combo du mode de propriété est à distance", par défaut). Je ne veux pas que mon combo pour recharger son magasin à chaque fois que je tape quelque chose.
Comment puis-je le faire?
Grâce.
Voici ma classe store :
MyStore = Ext.extend(Ext.data.JsonStore, {
constructor: function(jsonUrl, storeId, id, description, isAutoLoad, cfg) {
cfg = cfg || {};
GenericStore.superclass.constructor.call(this, Ext.apply({
storeId: storeId,
root: 'result',
url: jsonUrl,
autoLoad: isAutoLoad,
fields: [
{
name: id
},
{
name: description
}
]
}, cfg));
}
});
Et le combo :
xtype: 'combo',
fieldLabel: 'The Combo',
width: 150,
store: myStoreData,
valueField: 'id',
displayField: 'name',
minChars : 0,
editable : false,
itemId : 'my-combo'
OriginalL'auteur Cagdas Altinkaya | 2011-01-21
Vous devez vous connecter pour publier un commentaire.
Pour ce faire, vous devez:
Voici mon petit exemple:
Construire myStoreData variable
Construit le combo config
Heureux de savoir que sa vous aider. Bonne chance avec votre projet
Cela ne fonctionne pas pour moi. J'utilise ExtJS 4.2 et j'ai mis
queryMode: 'local'
, mais essentiellement, il appelle justestore.filter()
, qui charge le magasin, lorsque le magasin a configurationremoteFilter: true
.OriginalL'auteur Gajahlemu
Vous souhaitez utiliser le magasin.méthode filter (). Vous pouvez l'utiliser pour utiliser les données saisies par l'utilisateur pour filtrer votre magasin de la zone de liste déroulante utilise. Ceci est pris à partir de la ExtJS documentation de l'API pour les données.magasin.
Est le premier jeu de données statique? vous sortie à un fichier json qui peut être utilisé pour remplir votre magasin de données local. Vous pouvez ensuite essayer d'utiliser le mode:l'option locale.... De là, vous pouvez utiliser une référence pour le stockage utilisé par la boîte combo d'exécuter la méthode filter (). Voir Gajahlemu du code... Il y a beaucoup de bons paramètres pour ce que vous essayez de faire.
OriginalL'auteur It Grunt
Dans mon cas, j'ai dû ajouter l'option de configuration
lastQuery:''
à la liste déroulante.explication : http://progex.wordpress.com/2010/03/26/extjs-combo-dropdown-does-not-filter-on-first-trigger/
OriginalL'auteur Julien
Ajout d'un écouteur de votre magasin sur la "charge" de l'événement, de faire du filtrage, en supprimant ou de repérage des dossiers, si le retrait, il est clair à la charge de combo composant, de repérage si vous avez besoin de reconnaître ceux flaggs dans la liste déroulante et afficher ou non...
Il est difficile d'aller avec plus de détails si je ne vois pas votre code pour stocker et combo, donc je ne peut vous donner qu'une idée générale
OriginalL'auteur bensiu