如果使用表单编辑添加新行,则自由jqgrid不会设置行ID,保存到服务器并且服务器返回自动生成的行ID。 对添加的行进行后续编辑会导致错误。
我使用下面的代码尝试从github免费使用jqgrid,但问题仍然存在。
要重现,请在浏览器中打开下面的页面,单击加号按钮添加行和pess提交然后取消 Id列为空。代码包含:
afterSubmit: function (response, postdata) {
return [true, '', '100'];
模拟返回远程id 100的服务器响应。 所以Id列应该在添加后包含vlaue 100.
我在github上发布它作为免费的jqgrid问题,但没有得到任何回复。 如何修复它以便可以使用表单编辑添加行?
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.11.4/themes/redmond/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="http://cdn.jsdelivr.net/free-jqgrid/4.8.0/css/ui.jqgrid.css"/>
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
<script type="text/javascript" src="http://cdn.jsdelivr.net/free-jqgrid/4.8.0/js/i18n/grid.locale-en.js"></script>
<script type="text/javascript">
$.jgrid = $.jgrid || {};
$.jgrid.no_legacy_api = true;
$.jgrid.useJSON = true;
</script>
<script src="http://rawgit.com/free-jqgrid/jqGrid/master/js/jquery.jqgrid.src.js"></script>
<script type="text/javascript">
$(function () {
"use strict";
var mydata = [
],
$grid = $("#list");
$grid.jqGrid({
datatype: "local",
data: mydata,
colNames: ["Client", "Id"],
colModel: [
{ name: "name", align: "center", editable: true },
{ name: "id" }
],
iconSet: "fontAwesome",
pager: "#pager",
gridview: true,
autoencode: true,
ignoreCase: true,
onSelectRow: function (rowid) {
var $self = $(this),
savedRow = $self.jqGrid("getGridParam", "savedRow");
if (savedRow.length > 0) {
$self.jqGrid("restoreRow", savedRow[0].id);
}
$self.jqGrid("editRow", rowid, {
keys: true
});
}
})
.jqGrid('navGrid', {}, {},
{
}
})
;
});
//]]>
</script>
</head>
<body>
<table id="list"><tr><td></td></tr></table>
<div id="pager"></div>
</body>
</html>