J'ai ajusté cet exemple de grille ExtJS avec panneau détaillé à mes besoins.
Cela fonctionne plutôt bien mais maintenant je voudrais ajouter cette fonctionnalité :
Dans ma grille, l'un des champs peut contenir un texte très long (c'est ainsi qu'il est récupéré de mon magasin). Je voudrais présenter uniquement les premiers caractères N pour ce champ et seulement lorsque l'utilisateur fait quelque chose (passe la souris sur le champ/clique dessus/double-clique dessus/...) lui présenter la valeur complète (peut-être dans une fenêtre ou quelque chose de plus soigné).
J'ai réussi à définir un rendu qui présente uniquement les premiers caractères N comme ceci :
var my_grid = new Ext.grid.GridPanel({
store: my_store,
columns: [
{header: "description", width: 400, dataIndex: 'description', sortable: true,
renderer: function(val, meta, record) {
var tpl;
if (val.length > 400)
{
val = val.substr(0, 400) + '...';
}
tpl = new Ext.Template('{val}');
return tpl.apply(
{
val: val
});
}},
{header: "some_other_column_header", width: 100, dataIndex: 'blah-blah', sortable: true}
],
sm: new Ext.grid.RowSelectionModel({singleSelect: true}),
height:200,
split: true,
region: 'north'
});
Ma question est comment ajouter une fenêtre/autre option avec le texte complet lorsque l'utilisateur fait quelque chose. Je suppose que je devrais ajouter un auditeur à la grille mais je ne suis pas sûr comment écrire cet auditeur...
Merci !!!