Как отключить редактирование некоторых ячеек в редактировании строк JQGrid?
Когда я щелкаю по любой строке моей таблицы, все редактируемые столбцы становятся редактируемыми.
Я хочу, чтобы некоторые столбцы можно было редактировать в каждой строке отдельно.
Column 1, Column 2, Column 3
ROW Number 1 - editable, non-editable, non-editable
ROW Number 2 - non-editable, editable, non-editable
ROW Number 3 - editable, non-editable, non-editable
Заранее спасибо
2 ответа
Если вы используете встроенный режим редактирования и хотите динамически решить, какие ячейки строки будут редактироваться, например, на основе содержимого ячеек, вы можете сделать это так, как я описал здесь. Вы можете сделать это с помощью другого метода:
$(this).jqGrid('setColProp', 'YouColumnName', {editable:false});
Так что вы должны просто установить editable
в false
или же true
перед вызовом метода editRow. На пути вы можете реализовать любую логику, которую вы хотите.
ОБНОВЛЕНИЕ: Бесплатный jqGrid позволяет определить editable
в качестве функции обратного вызова. Смотрите статью в вики. Это позволяет сделать столбец редактируемым в одних строках и держать недоступным для редактирования в других строках.
У меня было похожее требование, просто я остановился на том, что Oleg уже упоминал в своем ответе:
//get colModel properties
var cm = jQuery("#grid").jqGrid('getColProp','myColumn');
//some condition to enable or disable editing
cm.editable = false;
//always call editRow after changing editable property
jQuery('#grid').jqGrid('editRow', rowId, {});
//set default editable option
cm.editable = true;
Ура:)