首页 新闻 会员 周边

jqGrid datagrid的重新加载问题

0
悬赏园豆:5 [已解决问题] 解决于 2016-03-22 16:24

      某个jsp文件中有如下部分代码

<div class="ibox-content">
     <div class="jqGrid_wrapper ">
           <table id="table_list" class="forum-info"></table>
           <div id="pager_list"></div>
     </div>
</div>

      js脚本部分

<script type="text/javascript">

$(document).ready(

var params = {status:"",orderId:""};

$("#table_list").jqGrid({

datatype:"json",
url:"getList",
mtype:'POST',
postData:params,
height: gridHeight,
autowidth: true,
shrinkToFit: true,
nowrap: false,
striped: true,
border: true,

colNames:['uuid','orderId','price'],

colModel:[

{name:'uuid',index:'uuid',align:"left",width:50},

{name:'orderId',index:'orderId',align:"left",width:50},

{name:'price',index:'price',align:"left",width:50}

],

pager:'#pager_list',
rownumbers:true,
rowNum:20,
viewrecords:true,
rowList:[20,50,80,100],
multiselect:false,
jsonReader: {
      root: "rows",
      total: "page",
      page: "currpage",
      records: "totalrecords",
      repeatitems: false
},
caption:"查询结果"

});

);

 

function search(){

var status = $("#status").val();

var orderId = $("#orderId").val();

var param = {status:status,orderId:orderId};

$("#table_list").jqGrid('clearGridData');

$("#table_list").jqGrid('setGridParam',{
      url:"searchDetailList",
      datatype:'json',
      postData:param,
      page:1
}).trigger("reloadGrid");

}

</script>

      执行search()的时候,换掉了原来的url,请求是成功的,而且也获得了返回的json数据,但是数据并没有在表格中进行解析,也就是reloadGrid没有加载新数据。如果url不变,还是getList的话,表格中是可以加载解析返回的json数据的。

      现在的项目中要求有各种情况下的请求,是否一定要保持url不变呢?改变了URL后的数据怎么可以加载到表格中呢?请求有经验的大神帮忙!!!

问题补充:

      执行search()方法的时候,会弹出一个隐藏层,输入选择状态,输入orderId,点击确定,执行方法,隐藏层消失,console里面打印出了后台返回的结果,但是$("#table_list")中没有重新加载新数据。

      jqGrid数据的重新加载是不是跟隐藏层有关呢?

可乐泥巴的主页 可乐泥巴 | 初学一级 | 园豆:186
提问于:2016-03-18 11:20
< >
分享
最佳答案
0

      找到原因了,是因为后台写接口的同事返回的数据有问题,个别字段的错误导致返回前台的数据不是完整的json,即使用js操作也不是很容易解决。其实,只要数据没有问题,下面的两种方法都是可以实现jqGrid dataGrid的重新加载功能的。

(1)

$("#table_list").setGridParam({
      url:"searchDetailList",
      datatype:'json',
      postData:param,
      page:1
}).trigger("reloadGrid");

(2)

$("#table_list").jqGrid('setGridParam',{
      url:"searchDetailList",
      datatype:'json',
      postData:param,
      page:1
}).trigger("reloadGrid");

可乐泥巴 | 初学一级 |园豆:186 | 2016-03-22 16:22
其他回答(1)
0

$("#table_list").setGridParam({
      url:"searchDetailList",
      datatype:'json',
      postData:param,
      page:1
}).trigger("reloadGrid");

收获园豆:5
刘宏玺 | 园豆:14020 (专家六级) | 2016-03-18 13:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册