我试图在对 URL 的 GET 请求之前设置 jqGrid 中的页面变量...
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 页上打开,无论如何。
现在,您可以将数据设置为“本地”,这意味着您必须重新加载网格才能获取任何数据。
但我希望在用户第一次打开它时加载数据。我正在尝试设置页面,以便用户使用我的编辑屏幕编辑一行后,当他点击“保存”时,他将被带回到他刚刚所在的页面。不是第一页。如您所知,这对于用户来说会非常令人沮丧。
UPDATE
好的...我在 beforeRequest 事件中放置了一个警报,它在我的网格加载之前触发。在 url 部分中调用的操作中设置一个断点告诉我,在实际发出请求之前会调用警报。这就是我所希望的。我只需要弄清楚如何正确设置页面变量。
UPDATE 2好的。我设置了变量,我的警报显示该变量确实已设置......
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");
但是,它仍然加载第一页?很明显,它再次被覆盖。为什么?我怎样才能永久设置这个。