Как отключить редактирование некоторых ячеек в редактировании строк 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;

Ура:)

Другие вопросы по тегам