上代码
colModel:[
 {name:'triggerName',hidden:true},
                 {name:'jobName'},
                 {name:'cronExpression',editable:true,editrules:{required:true}},
                 {name:'nextFireTime'},
                 {name:'prevFireTime'},
                 {name:'triggerState'},
                 {name:'startTime'},
                 {name:'description',editable:true,editrules:{required:true}}
 ]var navParams = {
edit:true,
add:true,
del:false,
view:false,
search:false,
refreshtext:"刷新",
addfunc : function(){
//var nnn = $("#gridTable").getGridParam("colModel");
//nnn[2].editable = true;
var addParams = {
url : "add"
};
$("#gridTable").jqGrid("editGridRow","new",addParams);
},
editfunc : function(rowId){
var idStr = "#"+rowId;
var $currRow = $("#gridTable").find(idStr);
var triggerName = $currRow.find("td:eq(1)").text();
var jobName = $currRow.find("td:eq(2)").text();
var editParams = {
editData : {
triggerName : triggerName,
jobName : jobName
},
closeAfterEdit : true
};
$("#gridTable").jqGrid("editGridRow",rowId,editParams);
}
};
jQuery("#gridTable").jqGrid('navGrid',"#paper",navParams);
因为jobName这个字段是新增的时候必须输入的,而修改的时候又不能修改,所以我{name:'jobName'} 这里没有设置editable:true,这样在新增的时候弹出的也没有jobName这个输入框,于是乎我写了注释里面的两行代码新增的时候手动取设置editable:true,这样也还有问题。 
应该是我解决方法错了,有遇到相同情况的么,就是有些字段是必须新增而不能修改的?该怎么设置jqGrid

解决方案 »

  1.   

    参考:jqGrid中文API,自己翻的,有些措辞不是很好,但基本你可以了解个大概jqGrid表单编辑配置设置列为可编辑的,增加editable:true,同时配置beforeShowForm事件,通过你的rowid判断是新增还是修改,在beforeShowForm事件设置jboName的readOnly属性实现只读或者可编辑就行了                editfunc : function(rowId){
                        var idStr = "#"+rowId;
                        var $currRow = $("#gridTable").find(idStr);
                        var triggerName = $currRow.find("td:eq(1)").text();
                        var jobName = $currRow.find("td:eq(2)").text();
                        var editParams = {
    beforeShowForm:function(frm){
    frm.find('#jobName').attr('readOnly',rowId=='new'?false:true)
    },
                                editData : {
                                    triggerName : triggerName,
                                    jobName : jobName
                                },
                                closeAfterEdit : true
                        };
                        $("#gridTable").jqGrid("editGridRow",rowId,editParams);
                    }
      

  2.   

    就是这个啊
    beforeShowForm:function(frm){
    frm.find('#jobName').attr('readOnly',rowId=='new'?false:true)
    },显示数据的时候通过name ,找到元素判断改行是新增还是编辑有没有行号