日期:2014-05-16  浏览次数:20399 次

在jqgrid中inline eidting模式中,如何实现切换行保存数据替代"esc"键?
最好两种保存方式都能使用;
让用户按"Esc"或者切换行焦点的时候提交数据到服务器,保存数据。
哪位大神帮忙
jqgrid 3.81

------解决方案--------------------
按esc键保存数据这个需要修改底层代码才行,没有配置保存数据的快捷键,只有是否启用快捷键keys(设置为true可以使用 [Enter]保存数据或者[Esc] 取消编辑)的配置。

不过你可以试试colModel配置中的editoptions的子项dataEvents,添加keydown事件,获取keycode,如果是esc将就手动调用saverow方法
jQuery("#grid_id").saveRow(rowid, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc);

{editoptions:{dataEvents:[{ type: 'keydown', fn: function(e) { 
if(e.keyCode==27){//ESC,调用saveRow方法,数据行的id在调用editRow前保存起来
 }
 }]}}


切换行执行保存的原理和esc一样,在切换到另外一行的编辑请手动调用saverow方法

var lastSel//////////
jQuery("#grid_id").jqGrid({
//...
   onSelectRow: function(id){
     if(id && id!==lastSel){ 
        jQuery("#grid_id").saveRow(lastSel, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc);///
        lastSel=id; 
     }
     jQuery('#grid_id').editRow(id, true); 
   },
//...
});