我试图在jqGrid中设置页面变量,然后再将GET请求发送到URL.
jQuery("#frTable").jqGrid({
cmTemplate: { sortable: false },
caption: '@TempData["POPNAME"]' + ' Population',
datatype: 'json',
mtype: 'GET',
url: '/Encounters/GetAjaxPagedGridData/',
我试过各种各样的东西,不管我怎么尝试,我似乎都不能让它起作用.我已经尝试过各种各样的事情,唯一的“类-工作”是订阅这样的LoadComplete事件。
loadComplete: function() {
if ((rowFromTemp != "") && (pageFromTemp != "")) {
setTimeout(function () {
$("#frTable").trigger("reloadGrid", [{page: pageFromTemp, rowNum: rowFromTemp}]);
}, 50);
}
},
我唯一的问题是它是不断更新的。不知道为什么会发生这种事。我唯一想到的就是我在用我的超时功能.
我尝试过订阅其他几个请求,但每个请求似乎都失败了。我觉得最有希望的是beforeRequest事件。这就是我现在拥有的..。
beforeRequest: function() {
if ((rowFromTemp != "") && (pageFromTemp != "")) {
$("#frTable").setGridParam([{ page: pageFromTemp, rowNum: rowFromTemp }]);
}
},
它不在乎我把变量设置到什么鬼地方,它只是在第1页打开,不管是什么。
现在,我可以将数据设置为“本地”,这意味着您必须重新加载网格才能获得任何数据。
但是,我希望在用户第一次打开数据时加载数据。我正在尝试设置页面,以便在用户编辑完我的编辑屏幕后,当他点击保存时,他将被带回到他刚刚在上面的页面。不是第一页。如你所知,这对用户来说是非常令人沮丧的。
更新
好的..。我在我的beforeRequest事件中放置了一个警报,它在我的网格加载之前就启动了。在我的操作中设置一个在url部分中调用的断点会告诉我,在我实际提出请求之前已经调用了警报。这正是我所希望的。我只需要弄清楚如何正确地设置页面变量。
更新2 Ok。我设置了变量,我的警报显示变量确实被设置了.
beforeRequest: function() {
if ((rowFromTemp != "") && (pageFromTemp != "")) {
this.p.page = pageFromTemp;
alert("This is what the page is: " + this.p.page + "; And this is what I want it to be: \n" + pageFromTemp + " How do I get it there \n");
但是,它仍然加载第一页吗?所以很明显,它又被推翻了。为什么?我怎样才能永久地设置这个。
发布于 2013-03-19 18:10:53
我也遇到了同样的问题,但是我让它在BeforeRequest函数上执行这个操作:
$('#GRID_ID').jqGrid('setGridParam', { postData: { page: 4} });
https://stackoverflow.com/questions/15167903
复制相似问题