2017-02-09 5 views
0

Вот две разные таблицы @Oleg сделаны:JQgrid: Комплектование весь ряд против щелкнули клетки

На first один, при нажатии на одну ячейку - вся строка определена.

На second один, только выбранная ячейка выбрана.

Управление этим персоналом контролируется cellEdit: true.

Я хотел бы иметь логику, которая установит cellEdit на false, но только для определенных строк (при некотором условии, которое для простоты предположим, что это произойдет, когда значение ячейки меньше 100).

Как это можно достичь?

+0

Ваш вопрос не достаточно ясно, потому что вы используете ссылку демо, которые используют * * редактирование ячейки **, но вы пишете о некоторых правилах для строк, что больше соответствует ** встроенному режиму редактирования **. Можно отключить некоторые ** ячейки ** от редактирования (в режиме редактирования ячейки), добавив класс '' not-editable-cell '' к соответствующим ячейкам (используя 'cellattr'). Можно отключить редактирование некоторых ** строк ** (в режиме встроенного редактирования), добавив класс '' not-editable-row ''в соответствующие строки (используя' rowattr'). Что именно вы хотите использовать редактирование ячеек или встроенное редактирование? – Oleg

+0

@ Олег, спасибо. Ну, у меня есть следующая проблема: я столкнулся с примерной сетью [this] (http://www.ok-soft-gmbh.com/jqGrid/CustomFormAndInlineEdit.htm). При выборе некоторой строки и изменении значения в столбце «Категория», а затем выборе другой строки, выбранное значение не сохраняется и восстанавливается до его начального значения. Можете ли вы привести мне пример, где значение фактически обновляется и не восстанавливается? – HeyJude

+0

@Oleg, я хотел бы сделать то, что вы предложили [здесь] (http://stackoverflow.com/a/9974305/3002584) на третьей отметке: «Вы можете реализовать сохранение текущей строки редактирования внутри onSelectRow или некоторых другой обратный вызов ». – HeyJude

ответ

0

Чтобы разрешить редактировать данные в некотором столбце, нужно указать в столбце свойство editable. Free jqGrid позволяет использовать функцию обратного вызова как значение editable. Обратный вызов должен возвращать логическое значение, которое сообщает jqGrid, является ли ячейка редактируемой или нет. The wiki article описывает функцию более подробно. Например, следующий обратный вызов в некотором столбце colModel позволяет редактировать ячейки только если значение в колонке amount меньше, как 100:

editable: function (options) { 
    var item = $(this).jqGrid("getLocalRow", options.rowid); 
    if (item.amount < 100) { 
     return false; 
    } 
    return true; 
} 
+0

Спасибо! Пожалуйста, обратитесь к [this] (http://stackoverflow.com/questions/42214322/jqgrid-make-the-select-drop-down-disappear) последующему вопросу. – HeyJude