在开发中 ,请求的数据方式不符合easyUI datagrid默认的请求方式,这个时候就需要开easyUI的源码,进行修改。
例如对接的数据需要post方式,而datagrid 默认为get方式,会导致405错误;
contentType默认为contentType: opts.contentType?opts.contentType:"text/html",需要改为 contentType: 'application/json', 否则会出现415错误。
注意,在loader里参数一定要传输对,不然会出现500错误。
代码如下:
1 $dataGrid.datagrid( 2 { 3 rownumbers: true, 4 checkOnSelect: true, 5 selectOnCheck: true, 6 singleSelect: false, 7 //title: '手表佩戴者信息', 8 fit: true, 9 fitColumns: true, 10 toolbar: '#toolbar', 11 //url: "/temp.json", 12 //method: 'get', 13 border: false, 14 pageSize: 15, 15 pageList: [15, 30, 50], 16 pagination: true, 17 queryParams: getParams(), 18 columns: Columns, 19 loader : function(param, success, error) { //param.page和param.rows是页码和页数。 20 param.biz_content.current_page = ""+param.page+""; 21 param.biz_content.page_size = ""+param.rows+""; 22 $.ajax({ 23 url : URL, //申请地址 24 contentType: 'application/json', 25 type: "POST", 26 data: JSON.stringify(param), 27 success : function(result) { 28 success(result); 29 } 30 }); 31 } 32 })
loader源码
1 loader: function(_629, _62a, _62b) { 2 var opts = $(this).datagrid("options"); 3 if(!opts.url) { 4 return false; 5 } 6 $.ajax({ 7 type: opts.method, 8 url: opts.url, 9 data: _629, 10 dataType: "json", 11 contentType: opts.contentType?opts.contentType:"text/html", 12 success: function(data) { 13 _62a(data); 14 }, 15 error: function() { 16 _62b.apply(this, arguments); 17 } 18 }); 19 }