1

Here представляет собой демонстрационную версию для добавления пользовательского значка в столбце Actions jQgrid. В моем случае, если добавить 3 строки gridComplete, вызывается 3 раза. Поэтому я получаю 3 пользовательских значка в 1-й строке, 2 во 2-й строке и 1 в 3-й строке. В любом случае мы можем добавить пользовательские значки на основе строк и столбцов ???Добавление пользовательского значка в столбец jqgrid с событием onclick

gridComplete: function() { 
       var iCol = getColumnIndexByName(grid, 'act'); 
       $(this).find(">tbody>tr.jqgrow>td:nth-child(" + (iCol + 1) + ")") 
        .each(function() { 
         $("<div>", { 
          title: "Custom", 
          mouseover: function() { 
           $(this).addClass('ui-state-hover'); 
          }, 
          mouseout: function() { 
           $(this).removeClass('ui-state-hover'); 
          }, 
          click: function(e) { 
           alert("'Custom' button is clicked in the rowis="+ 
            $(e.target).closest("tr.jqgrow").attr("id") +" !"); 
          } 
         } 
        ).css({"margin-right": "5px", float: "left", cursor: "pointer"}) 
         .addClass("ui-pg-div ui-inline-custom") 
         .append('<span class="ui-icon ui-icon-document"></span>') 
         .prependTo($(this).children("div")); 
       }); 
      } 

ответ

3

Посмотрите на the modified demo создано для the answer. Он использует jqGrid 4.4.4, но тот же код (см. the demo) также работает для jqGrid 4.5.2.

+0

Спасибо, Олег! Я успешно добавил пользовательский значок, используя приведенную выше демонстрационную версию. Так или иначе, мы могли бы открыть всплывающее окно (с помощью кнопки «Textarea» и «сохранить», «отменить»), щелкнув значок этого пользовательского значка. Так что пользователь вводит некоторые заметки в текстовой области, и когда он нажимает «Сохранить», я хочу сохранить его в какой-то скрытый столбец? –

+0

@ minnu4515: Добро пожаловать! В демо я связывал отдельный обработчик события 'click' и вызывал' alert'. Кроме того, я показал, как получить 'rowid' из параметра' e' события. Таким образом, вы можете отобразить любой jQuery UI Dialog или другое всплывающее окно и вызвать 'setCell' или' setRowData' для изменения столбца jqGrid в той же строке (также скрытая строка). Вам просто нужно использовать 'rowid'. Поэтому я не вижу никаких проблем при реализации ваших требований. – Oleg

+0

Спасибо, попробуй это сейчас .. –

0

Я думаю, что есть ошибка в строке:

$(this).find(">tbody>tr.jqgrow>td:nth-child(" + (iCol + 1) + ")") 

должен быть

$(this).find("tbody>tr.jqgrow>td:nth-child(" + (iCol + 1) + ")") 

(удаляя ">" перед tbody)

 Смежные вопросы

  • Нет связанных вопросов^_^