Можно ли определить текст при наведении курсора jqGrid с помощью AddRowData? - PullRequest
5 голосов
/ 13 сентября 2011

Можно ли в jqGrid определить текст заголовка (наведение) ячейки при добавлении данных строки?

var rowid;

for(var j=0;j<10;j++)
  {
      rowid = jQuery.Guid.New();
      jQuery("#myJqGrid").jqGrid('addRowData',rowid,{Amount:"$"+j+".00",Date:"09/30/2015"});
  }

Я бы предпочел не делать зацикливание на сетке после ее завершения, поскольку RowID и данные, необходимые для пользовательского текста при наведении, становятся более доступными во время добавления строки.

Спасибо!

1 Ответ

15 голосов
/ 14 сентября 2011

Если вам просто нужно установить пользовательскую подсказку для некоторых определенных ячеек в сетке, вы можете использовать setCell (см. здесь пример). Если вы хотите установить всплывающие подсказки для всех ячеек некоторого столбца, но с настраиваемым правилом (а не только с той же подсказкой, что и значение ячейки), лучше использовать cellattr . Например, вы можете использовать

{name: 'name', index: 'name', width: 70,
    cellattr: function (rowId, val, rawObject, cm, rdata) {
        return 'title="' + rawObject.name + ' (' + rawObject.note + ')"';
    }}

См. Демонстрационную версию здесь , в которой отображаются следующие подсказки:

enter image description here

Если у вас есть интерес к производительности, вы не должны использовать старый addRowData метод, который имеет много недостатков:

  • Если у вас есть дата во входных данных и вы используете форматтер: 'date', тогда вы должны использовать formatoptions: {reformatAfterEdit: true} для правильного форматирования даты. Вы почти не найдете информации об опции в документации .
  • Данные, которые вы вставили в строку после строки, будут размещены на одной странице. Для корректной локальной подкачки даты вам необходимо перезагрузить сетку еще раз.
  • Сравните с использованием параметра data в сочетании с параметром gridview: true (демоверсия выше), построение сетки в отношении addRowData происходит очень медленно. Вы можете увидеть разницу, если количество строк большое.
  • Во время создания демонстрации, использующей cellattr и addRowData, я обнаружил ошибку в jqGrid в строке , где два параметра rowid и data поменялись местами. Я только что опубликовал отчет об ошибке . Таким образом, чтобы использовать cellattr вместе с addRowData, необходимо внести небольшие изменения в jquery.jqGrid.src.js.

Смотрите демонстрацию, в которой используется addRowData здесь . Если используется измененная версия jquery.jqGrid.src.js (подробности см. В моем отчете об ошибке)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...