В целом я согласен с Джастином, что jqGrid не дает вам прямого способа установить всплывающую подсказку для строки, вы можете сделать это только на основе ячейки.Поэтому вы должны сделать это вручную.
Прежде всего вы должны установить свойство title: false для всех ячеек, чтобы не было всплывающей подсказки для ячеек.Затем вы должны установить свои собственные подсказки для каждой строки.Вы можете сделать это, например, внутри loadComplete дескриптора события.Соответствующий код может быть примерно следующим:
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 + ')');
}
}
Вы можете увидеть соответствующий пример, который вы можете видеть в реальном времени здесь .
ОБНОВЛЕНО : ВВ более поздних версиях jqGrid есть гораздо более эффективный способ установки пользовательских title
.Это использование cellattr
(см. ответ для примера) или rowattr
(см. ответ ).Я рекомендую всегда использовать gridview: true
опцию jqGrid.Использование cellattr
или rowattr
вместе с gridview: true
позволяет создать полное тело сетки, включающее все подсказки, которые необходимы в одной модификации страницы (полный HTML-фрагмент тела сетки, включающийвсе всплывающие подсказки будут присвоены свойству innerHTML
).Использование .attr
в цикле следует по крайней мере до reflow , которое является обширным (см. здесь ).Таким образом, использование cellattr
и rowattr
в сочетании с gridview: true
позволяет добиться максимальной производительности.