关于jqGrid组件数据显示不出问题

时间:2021-10-21 06:02:22

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="width: 100px" />
</td>
<td>
<span>订单状态:</span>
<select class="easyui-combobox" name="account_id" style="width: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" >&nbsp;&nbsp;搜索</button>&nbsp;&nbsp;</td>
<td><button class="easyui-linkbutton" onclick="addDataPlan('formSearchID')" type="button" >插入数据</button>&nbsp;&nbsp;</td>
<td><button class="easyui-linkbutton" onclick="addDataPlanAll('formSearchID')" type="button" >插入十表数据</button>&nbsp;&nbsp;</td>
<!-- <td><button class="easyui-linkbutton" onclick="addDataPlan('formSearchID')" type="button">同步计划</button>&nbsp;&nbsp;</td> -->
<td><button class="easyui-linkbutton" onclick="jQuery('#formSearchID').form('clear');" type="button" >清空</button>&nbsp;&nbsp;</td>
</tr>
</form>
</div>
<div style="width: 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>