Como desativar a edição de algumas células na edição de linhas do JQGrid?

Quando clico em qualquer linha da minha grade, todas as colunas editáveis ​​se tornam editáveis.

Eu quero que algumas das colunas sejam editáveis ​​em cada linha separadamente.

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 

Desde já, obrigado

Se você usar o modo de edição inline e quiser decidir dinamicamente quais células da linha serão editáveis, por exemplo, com base no conteúdo das células, você pode fazer isso da maneira que descrevi aqui . Você pode fazer isso com outro método também:

 $(this).jqGrid('setColProp', 'YouColumnName', {editable:false}); 

Portanto, você deve apenas definir editable como false ou true antes de chamar o método editRow . Da maneira que você pode implementar qualquer lógica que você deseja.

UPDATE: jqGrid grátis permite definir editable como function de callback. Veja o artigo da wiki . Permite tornar a coluna editável em algumas linhas e não editável para outras linhas.

Eu tinha uma exigência semelhante, apenas expandindo o que Oleg já mencionou em sua resposta:

 //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; 

Felicidades 🙂