最近使用jqgrid开发一个界面,挺易用的一个框架,直接复用现有的代码,使用get请求传参,拼接在url后面,遇到了输入框修改参数后后台数据获取不到的问题。
这个问题纠结了半天,通过搜索网页,了解jqGrid有触发器可以重新加载数据。
$('#Buttonid').on('click', function() { //页面上的button按钮的click事件,重新获取参数后发送参数,然后重新加载数据。 keyword = $("#jjinputid").val(); //获取输入框内容 cchl="jijin"; $("#dataTable").jqGrid('setGridParam',{ datatype:'json', postData:{'keyword':encodeURI(encodeURI(keyword))}, //发送数据 page:1 }).trigger("reloadGrid"); //重新载入 });
下面是加载数据的代码,有两个重要参数, mtype: 'POST',定义请求类型,postData定义参数种类
jQuery("#dataTable").jqGrid({ url:'rest/jjyqgk/getData', editurl:'rest/tabconfig/editTab', datatype: "json", mtype: 'POST', hidegrid: false, colNames: postData: { cchl: cchl, keyword: keyword }, rowNum:10, rowList:[10,20,30,40,50], pager: jQuery('#pager'), sortname: 'id', viewrecords: true, sortorder: "desc", jsonReader: { repeatitems : false, id: "0" }, altRows:true, // altclass:'someClass', rownumbers: true, //caption: "栏目列表", width: pagedoc.getWidth(), height: pagedoc.getHeight() });
参考网页:http://blog.csdn.net/enter89/article/details/8363189
http://www.huosen.net/archives/147.html