jqgrid 如何刷新重新加载数据?

夙歆风 发布于 2016/09/16 08:50
阅读 11K+
收藏 0

如题:

执行如下方法post参数到后台查询后,如果直接用reloadGrid会自动携带前一次的post参数到后台查询

$("#PostTable").jqGrid("setGridParam", {
	postData: {
		"Name": value
	}
}).trigger("reloadGrid");

即便将postData置空后也会携带前一次的post参数进行请求,请问在执行查询后,如何刷新加载全部数据呢?

$("#PostTable").jqGrid("setGridParam", {
	postData: {}
}).trigger("reloadGrid");




加载中
0
substring
substring
缓存问题吧,没碰到过这问题,置空之后应该就没问题了
夙歆风
夙歆风
并非缓存问题
0
很成立
很成立
那你就post Name 空到后台呗,后台处理空为不添加查询条件
夙歆风
夙歆风
主要还和其他组件交互,这样每次请求都会携带上一次的提交信息,除非手动清除他,目前不再通过postdata提交数据查询了,而是通过url参数进行查询。
0
Guest_Main
Guest_Main
上次 postData 属性都滞空
0
演员超
演员超

几种方法

1.楼上说的,你可以把value滞空了,后端sql动态判断就行了

2.$("#xxx").trigger("reloadGrid"); 参数不要用postData传递,放在url后面。

yannis_123
yannis_123
回复 @夙歆风 : www
dropyouract
dropyouract
如果url后面参数中带有中文 后台接收是乱码 如果我不想在后台转 要怎么解决啊
夙歆风
夙歆风
目前就用url传递参数了,postData清空存在一些问题。
演员超
演员超
后端你用sql 动态拼接判断就行了吧。
0
演员超
演员超

@dropyouract  = =我碰过这个问题,在后台转了两次解决了,如果不在后台转,排除框架的设置那些问题,感觉就是浏览器的问题了。你先用浏览器的工具看一下,提交的时候是否已经是乱码了。

不知道为什么 回复不了,在这里回复吧。

0
丶九门提督
丶九门提督

这个问题是jqgrid自身的bug,“jqgrid的方法 setGridParam方法自身会累加postdata的值”,需要像清空属性那样(delete property_name)清空上次请求参数才行。

以下是我用的方法:

/**
 * 清空jqGrid的postData(reloadGrid会自动累加postData参数)
 * @param jgrid
 * @returns
 */
function clearjqGridPostData(jgrid) {
	var postData = $('#' + jgrid).jqGrid("getGridParam", "postData");  
	$.each(postData, function (k, v) {  
		delete postData[k];  
	}); 
}

 

返回顶部
顶部