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

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" >&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=" 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>
原文地址:https://www.cnblogs.com/zdzdbk/p/10563488.html