que tenían el mismo problema y supongo que he encontrado una buena solución para manejar casilla clic inmediatamente. La idea principal es activar el método editCell cuando el usuario hace clic en la casilla de verificación no editable. Aquí está el código:
jQuery(".jqgrow td").find("input:checkbox").live('click', function(){
var iRow = $("#grid").getInd($(this).parent('td').parent('tr').attr('id'));
var iCol = $(this).parent('td').parent('tr').find('td').index($(this).parent('td'));
//I use edit-cell class to differ editable and non-editable checkbox
if(!$(this).parent('td').hasClass('edit-cell')){
//remove "checked" from non-editable checkbox
$(this).attr('checked',!($(this).attr('checked')));
jQuery("#grid").editCell(iRow,iCol,true);
}
});
Excepto esto, usted debe definir los eventos para la cuadrícula:
afterEditCell: function(rowid, cellname, value, iRow, iCol){
//I use cellname, but possibly you need to apply it for each checkbox
if(cellname == 'locked'){
//add "checked" to editable checkbox
$("#grid").find('tr:eq('+iRow+') td:eq('+iCol+') input:checkbox').attr('checked',!($("#regions").find('tr:eq('+iRow+') td:eq('+iCol+') input:checkbox').attr('checked')));
//trigger request
jQuery("#grid").saveCell(iRow,iCol);
}
},
afterSaveCell: function(rowid, cellname, value, iRow, iCol){
if(cellname == 'locked'){
$("#grid").find('tr:eq('+iRow+') td:eq('+iCol+')').removeClass('edit-cell');
}
},
Entonces su casilla enviará solicitudes de edición cada vez que el usuario hace clic en él.
@Justin Gran respuesta !! Gracias, si fuera mi pregunta, te daría el tic. – Dan
¡Fantástico! ¡Ojalá pudiera marcar esto como la respuesta seleccionada! – Nigel
¡De nada! Es una pena que esta pregunta sea tan antigua, pero espero que la respuesta aún pueda ser útil :) –