JqGrid中,设定指定单元格,官网是没有API的,cell的编辑和不可以编辑,是由not-editable-cell和edit-cell两个样式进行控制的,我们需要在onCellSelect的方法的时候,进行判断是否是我们自己需要编辑的行和列

下图可以看见,可编辑和不可编辑,是由两个样式进行控制的

JqGrid之指定单元格可编辑-yellowcong_jqgrid

核心的代码,这个地方是控制点击的时候,单元格是否可以进行编辑操作

onCellSelect:function(rowid,iCol,cellcontent,event){
      
        
            //札回数
            var strBiddingNo = $("#kaisu").val().substring($("#kaisu").val().length-1) ;
            if(strBiddingNo != undefined){
                if((iCol-2) != strBiddingNo){
                        //当是不是自己想要的列,加上not-editable-cell 样式,就不可以编辑了
                    $("#gridRakuData").jqGrid('setCell', rowid, iCol, '', 'not-editable-cell');
                }else{
                //当是编辑的列,加上editable-cell 样式,就可以编辑了
                    $('#gridRakuData #'+rowid+' td[aria-describedby="gridRakuData_kngaku'+strBiddingNo+'"]').removeClass('not-editable-cell');
                    $("#gridRakuData").jqGrid('setCell', rowid, iCol, '', 'edit-cell');
                }
            }
        }

Demo的代码

$("#gbox_gridRakuData").remove();
    $("#wfgm1070RakuData").append("<table id='gridRakuData'></table>");
    $('#gridRakuData').jqGrid({
        formatter : {
             integer : {thousandsSeparator: ",", defaultValue: ""},
        },
        data: dataList,
        datatype:"local",

        cellEdit:girdEditDistable, //CELL EDIT ABLE
        cellsubmit:'clientArray',
        colNames:colNames,
        colModel:colModel,
        width:gridWidth,
        height:gridHeight,
        scrollOffset:0,
        rowNum:dataList.length,
        regional:'ja',
        beforeSelectRow: function(rowid, e){
      
        
            return false;
        },
        onSelectRow: function(id) {
      
        
        // var curRowData = $("#gridRakuData").jqGrid('getRowData', id);
            //$("#gridRakuData").jqGrid("setSelection", id,false);
        },
        ondblClickRow: function(id) {
      
        
        },
        onCellSelect:function(rowid,iCol,cellcontent,event){
      
        
            //札回数
            var strBiddingNo = $("#kaisu").val().substring($("#kaisu").val().length-1) ;
            if(strBiddingNo != undefined){
                if((iCol-2) != strBiddingNo){
                    $("#gridRakuData").jqGrid('setCell', rowid, iCol, '', 'not-editable-cell');
                }else{
                    $('#gridRakuData #'+rowid+' td[aria-describedby="gridRakuData_kngaku'+strBiddingNo+'"]').removeClass('not-editable-cell');
                    $("#gridRakuData").jqGrid('setCell', rowid, iCol, '', 'edit-cell');
                }
            }
        },beforeSelectRow(rowid, e){
            return false;
        }
    });