En général, je suis d'accord avec Justin, que jqGrid vous obtenez aucun moyen direct pour régler infobulle sur la ligne, vous pouvez le faire que sur la base cellulaire. Donc, vous devez le faire manuellement.
d'abord tout ce que vous devez définir la propriété title:false sur toutes les cellules ne pas avoir infobulle pour les cellules. Ensuite, vous devez définir vos info-bulles personnalisées de chaque ligne. Vous pouvez le faire par exemple dans le handle d'événement loadComplete. Le code correspondant peut être au sujet suivant:
loadComplete: function() {
var ids = grid.jqGrid('getDataIDs');
for (var i=0;i<ids.length;i++) {
var id=ids[i];
var rowData = grid.jqGrid('getRowData',id);
$('#'+id,grid[0]).attr('title', rowData.Name + ' (' +
rowData.Category + ', ' +
rowData.Subcategory + ')');
}
}
Vous pouvez voir l'exemple correspondant, vous pouvez voir en direct here.
MISE À JOUR: Dans les versions les plus récentes de jqGrid, il existe une méthode beaucoup plus efficace pour définir title
personnalisé. Il est l'utilisation de cellattr
(voir the answer pour un exemple) ou l'utilisation de rowattr
(voir the answer). Je recommande d'utiliser l'option gridview: true
de jqGrid toujours. L'utilisation de cellattr
ou rowattr
avec gridview: true
permet de créer un corps de grille complet incluant toutes les infobulles dont on a besoin dans une modification de la page (le fragment HTML complet du corps de grille incluant toutes les info-bulles sera affecté à la propriété innerHTML
). L'utilisation de .attr
dans la boucle suit au moins reflow qui est expansif (voir here). Donc, l'utilisation de cellattr
et rowattr
en combinaison avec gridview: true
permettent d'atteindre les meilleures performances.
Je fais un test sur votre démo, et l'info-bulle n'apparaît pas toujours. Par exemple, passez la souris sur la ligne n ° 1, puis n ° 2, puis n ° 1. Comment le code peut-il être amélioré pour toujours afficher l'info-bulle? –
@eugene y: Dans quel navigateur vous avez le problème? Dans mes tests, je vois toujours l'info-bulle. – Oleg
C'était Firefox 3.6.15 Va vérifier d'autres navigateurs plus tard. –