27 votes

ExtJS 4.x: Comment désactiver le coin rouge "dirty record" dans les cellules Ext.grid.Panel?

J'ai un Poste.de la grille.Panneau (aka gridpanel) avec un magasin, utilisée uniquement pour le côté client d'effets visuels (c'est à dire, rien n'est enregistré sur le serveur). Lorsque je créer un nouveau modèle d'instances et de les ajouter à la boutique, ils sont indiqués dans la grille avec un coin rouge (sans doute en indiquant que stocker des changements n'ont pas été enregistrées).

Pour le moment, je vais appeler la .méthode commit() sur chaque enregistrement/modèle avant, il est ajouté à la boutique pour empêcher l'enregistrement sale coin rouge dans la grille.

Est-il un générique façon de simplement configurer un panneau grille pour ne pas afficher visuelle des indicateurs relatifs à la "sale" statut d'un enregistrement?

Remarque: Les solutions à cette question similaire s'agir d'un CSS ou ne fonctionnent que pour ExtJS 3. Je suis l'espoir de trouver un programmatiques "paramètre" qui fonctionne pour ExtJS 4.

45voto

mesx Points 365

Son fonctionne à nouveau dans ExtJS 4.1.1. Utilisez la propriété de configuration markDirty dans la vue de grille.

Lorsque vous avez un GridPanel, utilisez-le comme ceci:

 viewConfig:{
    markDirty:false
}
 

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.View-cfg-markDirty

5voto

Clint Harris Points 7163

Sur la base des réponses ici et sur les forums Sencha, et après avoir regardé la source ExtJS, la réponse est essentiellement:

Non, il n'y a pas de moyen simple (au moins dans 4.0.7) de configurer une grille pour ne pas afficher les coins rouges sans utiliser CSS.

Merci pour tout le brainstorming et les informations supplémentaires de tout le monde. Je lance cela pour que quiconque rencontre cela à l'avenir puisse voir une "réponse" claire à ma question.

4voto

The Mighty Chris Points 848

Une option serait d'éviter d'utiliser un proxy distant, et au lieu d'utiliser une mémoire proxy avec la synchronisation automatique: true, puis de charger les données manuellement avec une Ext.Ajax.demande d'appel.

La distance procurations sont assez codé en dur pour garder une trace de savoir si des modifications ont été enregistrés sur le serveur ou pas.

Si vous souhaitez garder une trace de savoir si ils sont enregistrés sur le serveur ou pas, mais il suffit de supprimer l'indication visuelle avec les coins, utiliser les CSS pour changer ce "sale" lignes ressembler. Si vous souhaitez supprimer complètement de suivi, de ne pas utiliser un proxy distant.

4voto

David Points 538

J'ai un formulaire avec une case à cocher qui ne représente que des données transitoires. Cocher la case marquerait la colonne sale, ce qui n'avait pas de sens pour ma cellule. Les autres colonnes avaient probablement besoin des marques sales si elles n'étaient pas synchronisées. Ma solution qui s'inspire de la réponse de @ Roman, mais avec plus de contrôle sur les colonnes qui recevront le traitement.

Dans la colonne config:

 {
    xtype: 'checkcolumn',
    tdCls: 'no-dirty',
    dataIndex: 'selected',
    width: 50,
    text: 'Check'
},
 

Dans mon CSS

 .no-dirty.x-grid-dirty-cell
{
    background-image: none;
}
 

3voto

Roman Kostenko Points 31

Ça marche! Mais c'est sale pour moi. Juste pour une solution rapide.

 .x-grid-dirty-cell {
    background-image: none;
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X