0

当用户选择一个单元格时,我有以下代码转到 window.location

                 beforeSelectRow: function (rowid, e) {
                 var $td = $(e.target).closest("td"),
                 iCol = $.jgrid.getCellIndex($td[0]);
                 if (this.p.colModel[iCol].name === 'FlSaved') {
                 var pagenum = $('#reportList').getGridParam('page');
                 var rownum = 200;
                     alert(pagenum);
                     alert(rownum);
                 window.location = "/Plt/FileUpload/" + '?id=' + encodeURIComponent(rowid) + '&pagenum=' + pagenum;
                 }

请注意我是如何传递 pagenum 的。我传递页码的原因是因为当用户在 window.location 完成他们需要做的事情时,我需要用户返回他们所在的网格页面。

为此,我正在执行 loadComplete 我设置页面的值但似乎没有工作。

      loadComplete: function (data) {

      if ('@TempData["pageNum"]') {

         $("#rpList").trigger("reloadGrid",[{page:pagenum}]);
} 

触发器 reloadGrid 的最佳位置在哪里?

4

1 回答 1

1

我不清楚何时'@TempData["pageNum"]'设置、何时清除以及代码是否会保存在网络浏览器的缓存中。如果我们忘记了这些问题,我对您的代码有一个重要的评论:如果您使用.trigger("reloadGrid", ...)inside ofloadComplete您应该调用triggerinside of setTimeout。它将允许在开始下一个由 初始化的加载之前处理网格的当前加载直到结束.trigger("reloadGrid", ...)。所以代码可能是关于以下内容:

loadComplete: function (data) {
    ...
    if (/*some condition*/) {
        setTimeout(function () {
            $(this).trigger("reloadGrid",[{page: pagenum}]);
        }, 50);
    }
    ...
}

事件0而不是的用法与没有50的用法不同。.trigger("reloadGrid",...)setTimeout

于 2013-01-31T16:24:03.460 回答