jqGrid组件一开始怎么数据都返回了渲染不出来,查找了一天,最后发现点击搜索之后doSearch()事件触发的方法并不是数据请求接口,而是再次请求了初次登录的接口,从初次登录返回的数据,数据格式没问题就可以正常显示
<body class="easyui-layout"> <div data-options="region:'north',split:true" style="height:40px;padding: 5px;"> <form id="formSearchID" onsubmit="return doSearch('formSearchID','contentRegionID');"> <tr> <td style="text-align: right"> <label>计划日期:</label> <input id="startTime" name="startTime" class="easyui-datebox" style=" 100px" /> </td> <td> <span>订单状态:</span> <select class="easyui-combobox" name="account_id" style="200px;"> <option value="">全部</option> <option value="9629582">网扶广点通01</option> <option value="9635854">网扶广点通02</option> <option value="9636292">网扶广点通04</option> <option value="9636307">网扶广点通05</option> <option value="9636320">网扶广点通06</option> </select> </td> <td><button class="easyui-linkbutton" > 搜索</button> </td> <td><button class="easyui-linkbutton" onclick="addDataPlan('formSearchID')" type="button" >插入数据</button> </td> <td><button class="easyui-linkbutton" onclick="addDataPlanAll('formSearchID')" type="button" >插入十表数据</button> </td> <!-- <td><button class="easyui-linkbutton" onclick="addDataPlan('formSearchID')" type="button">同步计划</button> </td> --> <td><button class="easyui-linkbutton" onclick="jQuery('#formSearchID').form('clear');" type="button" >清空</button> </td> </tr> </form> </div> <div style=" 100%;height: 95%;overflow-y: scroll;"> <table id="contentRegionID"></table> </div> <div id="pager2"></div> <style type="text/css"> #gbox_contentRegionID { padding-top: 57px; } .ui-jqgrid .ui-jqgrid-bdiv { height: 690px !important; } .panel-body.panel-body-noheader.layout-body{height: 50px !important} </style> <script> jQuery(document).ready(function () { jQuery('#startTime').datebox('setValue',formatterDate(new Date())); }); formatterDate = function (date) { var day = date.getDate() > 9 ? date.getDate() : "0" + date.getDate(); var month = (date.getMonth() + 1) > 9 ? (date.getMonth() + 1) : "0" + (date.getMonth() + 1); var hor = date.getHours(); var min = date.getMinutes(); var sec = date.getSeconds(); return date.getFullYear() + '-' + month + '-' + day+" "+hor+":"+min+":"+sec; }; $(function(){ //页面加载完成之后执行 pageInit(); }); function pageInit(){ //创建jqGrid组件 jQuery("#contentRegionID").jqGrid( { url : '/v1/tenNews',//组件创建完成之后请求数据的url datatype : "json",//请求数据返回的类型。可选json,xml,txt colNames : ['推广计划ID', '广告组ID', '总花费(元)', '曝光量', '点击数','点击率(%)','advid'],//jqGrid的列显示名字 colModel : [ //jqGrid每一列的配置信息。包括名字,索引,宽度,对齐方式..... {name : 'adgroup_id',index : 'adgroup_id',align : "center"}, {name : 'campaign_id',index : 'campaign_id',align : "center"}, {name : 'cost',index : 'cost',align : "center"}, {name : 'view_count',index : 'view_count',align : "center"}, {name : 'valid_click_count',index : 'valid_click_count',align : "center"}, {name : 'ctr',index : 'ctr',align : "center"}, {name : 'advid',index : 'advid',align : "center"}, ], rowNum : 100,//一页显示多少条 rowList : [ 10, 100, 200 ],//可供用户选择一页显示多少条 pager : '#pager2',//表格页脚的占位符(一般是div)的id sortname : 'adgroup_id',//初始化的时候排序的字段 sortorder : "desc",//排序方式,可选desc,asc mtype : "get",//向后台请求数据的ajax的类型。可选post,get viewrecords : true, rownumbers: true, footerrow:true, caption : "订单完成情况",//表格的标题名字 jsonReader: {//控制返回格式,格式正确,表格自会有数据 root:"rows", page: "page", total: "total", records: "records", repeatitems : false, id: "adgroup_id" }, loadComplete:function() { var grid = $("#contentRegionID"); var ids = grid.getDataIDs(); for (var i = 0; i < ids.length; i++) { grid.setRowData ( ids[i], false, {height: 25} ); } //数据汇总 var cost = parseInt(jQuery(this).getCol('cost', false, 'sum')).toFixed(2); $(this).footerData("set", {rn:'合计', cost:cost}); } }).trigger("reloadGrid"); /*创建jqGrid的操作按钮容器*/ /*可以控制界面上增删改查的按钮是否显示*/ jQuery("#contentRegionID").jqGrid('navGrid', '#pager2', {edit : false,add : false,del : false}); } /** * 当搜索条提交时触发 * */ function doSearch(formID,tableID){ this.addDataPlan_One(formID,tableID); return false; } function addDataPlan_One(formID,tableID){ console.log(jQuery('#'+formID).serializeObject()); $.ajax({ url: '/v1/tenNews/addDataPlan', type: 'POST', dataType: 'json', data: jQuery('#'+formID).serializeObject() }) .done(function(e) { console.log(e); console.log(jQuery('#'+formID).serializeObject()); //自定义追加 jQuery('#'+tableID).jqGrid('setGridParam', {//二次,直接用自己的参数查询结果赋给#list2 datatype:'json', postData: jQuery('#'+formID).serializeObject() }).trigger('reloadGrid'); console.log('#'+tableID); }) } </script> </body>