2016-11-18 4 views
0

В JQgrid: Чтобы изменить ячейку (не в первом столбце), мне нужно 3 щелчка мыши, чтобы сфокусировать ячейку, могу ли я сделать это с двойным щелчком?jQGrid: тройной щелчок, необходимый для редактирования ячейки

Например: Если я хочу отредактировать столбец «desription» в моей сетке, мне нужно 3 щелчка мыши. enter image description here

+0

"тройной щелчок" ??? !!! Пожалуйста, подумайте о других людях, которые читают ваш вопрос и пытаются сформулировать текст, чтобы все понимали, что вы сделали и что вам нужно реализовать. ** Нужно ли выполнять редактирование на «тройном щелчке» или вы уже писали программу с таким странным поведением, которое вы хотите устранить? ** Если проблема существует в вашем текущем коде, тогда вы должны включить код JavaScript, который вы используете в тексте своего вопроса. – Oleg

+0

@Oleg Вопрос Отредактировано – thalla

+0

@ Олег, пожалуйста, загляните в свое демо из ссылки: http://www.ok-soft-gmbh.com/jqGrid/ActionButtons.htm там также вам нужно 3 щелчка, чтобы изменить налоговую ячейку – thalla

ответ

1

Если вы используете бесплатный jqGrid, то вы можете использовать Вы можете использовать focusField вариант editRow:

ondblClickRow: function (rowid, iRow, iCol, e) { 
    $(this).jqGrid("editRow", rowid, { focusField: e.target }); 
}, 
beforeSelectRow: function (rowid) { 
    var $self = $(this), i, 
     // savedRows array is not empty if some row is in inline editing mode 
     savedRows = $self.jqGrid("getGridParam", "savedRow"); 
    for (i = 0; i < savedRows.length; i++) { 
     if (savedRows[0].id !== rowid) { 
      // save currently editing row 
      // one can replace saveRow to restoreRow in the next line 
      $self.jqGrid("saveRow", savedRows[i].id); 
     } 
    } 
    return savedRows.length === 0; // allow selection if saving successful 
}, 

См https://jsfiddle.net/ft7zsocy/

+0

, он работает, но после нажатия клавиши ввода после редактирования - строка не сохраняется до отправки этой формы. Есть идеи ? – thalla

+0

@thalla: Это просто вариант 'editRow'. Вы можете изменить '$ (this) .jqGrid (" editRow ", rowid, {focusField: e.target});' to '$ (this) .jqGrid (" editRow ", rowid, {focusField: e.target, keys : true}); 'или добавить параметр' inlineEditing', который задает * параметры по умолчанию * для встроенного редактирования, например 'inlineEditing: {keys: true}'. См. Https://jsfiddle.net/ft7zsocy/1/ – Oleg

+0

Большое спасибо. Если у вас есть возможность пометить Олега :) – thalla