定义一个变量存放正在编辑的行,通过updateRow这个方法从新执行formatter这个方法通过这个变量判断选择哪个就可以field: 'operate',
            title: '操作',
            //title: $res_entry('SCB.label.status'),
            width: 100,
            formatter: function(value, rowData, rowIndex){
                var operate = '<a href="javascript:void(0)"  onclick="modify(' + rowIndex + ')">修改</a>'
                if (editorRow != -1 && editorRow == rowIndex) {
                    operate = '<a href="javascript:void(0)" onclick="saveEdit(' + rowIndex + ')">保存</a>&nbsp' +
                    '<a href="javascript:void(0)" onclick="cancelEdit(' +
                    rowIndex +
                    ')">取消</a>';
                }
                return operate;
                
            }/**
 * 修改
 */
function modify(index){
    //判断是否只有一行在修改
    var num = POSStockRowTable.datagrid('getSelections');
    if (editorRow == -1) {
        //当没有数据编辑时则进行编辑
        //打开编辑器进行编辑
        POSStockRowTable.datagrid('beginEdit', index);
        //将当前编辑的行号给记录在编辑的行变量中
        editorRow = index;
        //更新当前编辑行的内容,用于改变操作的数据 operate 列值
        POSStockRowTable.datagrid('updateRow', {
            index: index,
            row: {
                operate: ""
            },
        });
        
    }
    else {
        //当有数据编辑时提示是否保存
        $.messager.confirm('提示', '是否保存正在修改的数据', function(btn2){
            //点击确定则保存,否则取消
            if (btn2) {
                //存放正在编辑的行号
    var index = editorRow;
    editorRow = -1;
    POSStockRowTable.datagrid('endEdit', index);
            }
        });
    }
    
}

解决方案 »

  1.   

    还有一个可以在formatter 中将三个按钮全写出来,通过onBeforeEdit隐藏和显示按钮就可以
      

  2.   

    楼主,请教一下,用updaterow更新了数据后用getchanges可以获取到更新行吗?我试了好像不行
    function updateRow(){
    $('#dg').datagrid('updateRow',{index:2,row:{attr1:'test'}});
    }function getChanges(){
    var rows = $('#dg').datagrid('getChanges');
    alert(rows.length+' rows are changed!');
    }
    得到是0
      

  3.   

    楼主
    updateRow后你后面是怎样获取getChanges updated的啊。
    http://bbs.jeasyuicn.com/thread-3828-1-1.html帮我看看这个