我已经实现了jqGrid,但是当我尝试使用内置表单编辑功能时,会弹出一个空表单。
对于我设置editable:true的每一列,除了表的主键外,还有一个自动递增的id。我究竟做错了什么?我需要有一个有效的editurl,而不是clientArray吗?下面是jqGrid实现:
$.ajax({
type: "GET",
url: colUrl,
datatype: "json",
success: function(result){
result = jQuery.parseJSON( result )
var colN = result.colNames;
var colM = result.colModelList;
$("#jqTable").jqGrid({
url:dataUrl,
datatype: 'xml',
mtype: 'GET',
colNames:colN,
colModel:colM,
shrinkToFit: false,
caption: db + "." + table,
pager: '#jqPager',
rowNum:10,
rowList:[10,20,30],
sortname: 'dbid',
editurl: 'clientArray',
sortorder: 'asc',
viewrecords: true,
width: 1000,
height: 400
});
$("#jqTable").jqGrid('navGrid', '#jqPager',
{edit:true, add:false, del:false, search:true, view:false}, //options
{}, // edit options
{}, // add options
{}, // del options
{multipleSearch:true,
sopt : ['eq',//equals
'ne',//not equals
'lt',//less than
'le',//less than or equal
'gt',//greater than
'ge',//greater than or equal
'bw',//begins with
'bn',//does not begin with
'in',//in
'ni',//not in
'ew',//ends with
'en',//does not end with
'cn',//contains
'nc']//does not contain
}, // search options
{} //view options
);
},
error: function(x,e){
alert(x.readyState + " " + x.status + " " + e.msg);
}
});
这里是样本colModel和ColName字符串:
"colModelList": [{"name":"dbid","index":"dbid","editable":"false"},{"name":"description","index":"description","editable":"true"},{"name":"file_name","index":"file_name","editable":"true"}],"colNames": ["dbid","description","file_name"]
答案 0 :(得分:4)
我认为原因是因为您使用"editable": "true"
或"editable": "false"
代替"editable": true
或"editable": false
。
此外,您尝试使用form editing进行本地数据编辑。当前的jqGrid实现仅支持cell editing和inline editing的本地数据编辑。如果您确实需要使用form editing来修改本地数据,可以在my demo中找到the answer。代码会更长,但可以实现这一点。