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;
                 }

ページ番号を渡す方法に注意してください。ページ番号を渡す理由は、ユーザーが window.location で必要なことを終了したときに、ユーザーがいたグリッド ページに戻る必要があるためです。

これを行うために、ページの値を設定する場所で loadComplete を実行していますが、機能していないようです。

      loadComplete: function (data) {

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

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

トリガー reloadGrid を実行するのに最適な場所はどこですか?

4

1 に答える 1

1

'@TempData["pageNum"]'いつ設定され、いつクリアされ、コードが Web ブラウザーのキャッシュに保持されるかは不明です。質問を忘れた場合、コードに重要な注意事項が 1つ.trigger("reloadGrid", ...)ありloadCompleteます。によって初期化された次のロードを開始する前に、グリッドの現在のロードを最後まで処理できます。したがって、コードは次のようになります。triggersetTimeout.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 に答える