当我们保存数据到服务器之后,我们可以对数据应用完全的控制权。众所周知,发送的数据是成功的。但是同样的我们将数据保存到数据库不一定会成功。为了控制这种情况,我们可以在数据保存到服务器的时候设置上一个回调函数。这个回调函数接收从服务器上返回的数据。根据这个数据,函数可以返回true或false。当返回true的时候意味着保存是成功的。当返回false的时候,保存是失败的。另外,保存数据中断,服务器不返回任何数据。

33jqGrid 行编辑- 全列编辑_json

HTML代码举例

<html>
<head>
<title>jqGrid 实例</title>
</head>
<body>
···代码省略···
<table id="rowed4"></table>
<div id="prowed4"></div>
<br />
<input type="BUTTON" id="ed4" value="Edit row 13" />
<input type="BUTTON" id="sved4" disabled='true' value="Save row 13" />
···代码省略···
</body>
</html>

javascript代码举例

$(function(){
pageInit();
});
function pageInit(){
jQuery("#rowed4").jqGrid(
{
url : ctx+'/JSONData',
datatype : "json",
colNames : [ 'Inv No', 'Date', 'Client', 'Amount', 'Tax','Total', 'Notes' ],
colModel : [
{name : 'id',index : 'id',width : 55},
{name : 'invdate',index : 'invdate',width : 90,editable : true},
{name : 'name',index : 'name',width : 100,editable : true},
{name : 'amount',index : 'amount',width : 80,align : "right",editable : true},
{name : 'tax',index : 'tax',width : 80,align : "right",editable : true},
{name : 'total',index : 'total',width : 80,align : "right",editable : true},
{name : 'note',index : 'note',width : 150,sortable : false,editable : true}
],
rowNum : 10,
rowList : [ 10, 20, 30 ],
pager : '#prowed4',
sortname : 'id',
viewrecords : true,
sortorder : "desc",
editurl : ctx+"/RowEditing",
caption : "Full control"
});
jQuery("#ed4").click(function() {
jQuery("#rowed4").jqGrid('editRow', "13");
this.disabled = 'true';
jQuery("#sved4").attr("disabled", false);
});
jQuery("#sved4").click(function() {
jQuery("#rowed4").jqGrid('saveRow', "13", checksave);
jQuery("#sved4").attr("disabled", true);
jQuery("#ed4").attr("disabled", false);
});
function checksave(result) {
if (result.responseText == "") {
alert("Update is missing!");
return false;
}
return true;
}
}

java servlet代码举例

public class JSONData extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public JSONData() {
super();
// TODO Auto-generated constructor stub
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(req,resp);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String jsondata = "{\"page\":\"1\"," +
" \"total\":2," +
" \"records\":\"13\"," +
" \"rows\":" +
" [" +
" {" +
" \"id\":\"13\"," +
" \"cell\":" +
" [\"13\",\"2007-10-06\",\"Client 3\",\"1000.00\",\"0.00\",\"1000.00\",null]" +
" }," +
" {" +
" \"id\":\"12\"," +
" \"cell\":" +
" [\"12\",\"2007-10-06\",\"Client 2\",\"700.00\",\"140.00\",\"840.00\",null]" +
" }," +
" {" +
" \"id\":\"11\"," +
" \"cell\":" +
" [\"11\",\"2007-10-06\",\"Client 1\",\"600.00\",\"120.00\",\"720.00\",null]" +
" }," +
" {" +
" \"id\":\"10\"," +
" \"cell\":" +
" [\"10\",\"2007-10-06\",\"Client 2\",\"100.00\",\"20.00\",\"120.00\",null]" +
" }," +
" {" +
" \"id\":\"9\"," +
" \"cell\":" +
" [\"9\",\"2007-10-06\",\"Client 1\",\"200.00\",\"40.00\",\"240.00\",null]" +
" }," +
" {" +
" \"id\":\"8\"," +
" \"cell\":" +
" [\"8\",\"2007-10-06\",\"Client 3\",\"200.00\",\"0.00\",\"200.00\",null]" +
" }," +
" {" +
" \"id\":\"7\"," +
" \"cell\":" +
" [\"7\",\"2007-10-05\",\"Client 2\",\"120.00\",\"12.00\",\"134.00\",null]" +
" }," +
" {" +
" \"id\":\"6\"," +
" \"cell\":" +
" [\"6\",\"2007-10-05\",\"Client 1\",\"50.00\",\"10.00\",\"60.00\",\"\"]" +
" }," +
" {" +
" \"id\":\"5\"," +
" \"cell\":" +
" [\"5\",\"2007-10-05\",\"Client 3\",\"100.00\",\"0.00\",\"100.00\",\"no tax at all\"]" +
" }," +
" {" +
" \"id\":\"4\"," +
" \"cell\":" +
" [\"4\",\"2007-10-04\",\"Client 3\",\"150.00\",\"0.00\",\"150.00\",\"no tax\"]" +
" }" +
" ]," +
" \"userdata\":{\"amount\":3220,\"tax\":342,\"total\":3564,\"name\":\"Totals:\"}" +
" }";
response.getWriter().write(jsondata);
}

}