beforeerequest事件jqGrid:在url被调用之前设置jqGrid页面



我试图在GET请求到URL之前设置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页打开。
现在,我在这里可以将数据设置为'local',这意味着你必须重新加载网格以获取任何数据。

但是我希望数据在用户第一次打开时加载。我试图设置页面,以便在用户编辑一行与我的编辑屏幕后,当他点击保存时,他将被带回到他刚刚上的页面。不是第一页。如你所知,这对用户来说是非常令人沮丧的。

好吧…我在我的beforeRequest事件中放了一个警报,它在我的网格加载之前触发。在url部分中调用的操作中设置一个断点,告诉我在实际发出请求之前调用了警报。这正是我所希望的。我只需要弄清楚如何正确设置页面变量。

更新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");

但是,它仍然加载第一页吗?很明显,它又被重写了。为什么?我怎样才能永久地设置它。

我有同样的问题,但我得到了它的工作这样做在BeforeRequest函数:

$('#GRID_ID').jqGrid('setGridParam', { postData: { page: 4} });

最新更新