0

jqgrid では、6 つのレコードがある場合 (ページング 5)。したがって、最初のページには 5 つのレコードがあり、2 番目のページには 1 つのレコードがあり、ユーザーは 6 番目のレコードを (ページ #2​​ から) 削除しました。次に、グリッドはまだページ #2​​ に残っており、ページ 2 には行が削除されているため存在しません。1 ページに 5 件のレコードがあり、2 ページにレコードがない場合、見栄えがよくありませんが、ページ選択は 2 ページに表示されます。

それを解決する方法を教えてください。前のページ(最後のページ)に移動するべきだと思います。

また、関連する問題: 6 つのレコードすべてが削除された場合。その後、グリッドは引き続き表示されます。そのため、レコードが存在しないため、ラベル メッセージが表示されるはずです。これを達成する方法は?

4

1 に答える 1

1

グリッドの現在のページreccountに番号またはレコードを提供するオプションを使用できます。レコード数が 0 の場合は、追加のアクションを実行できます。たとえば、追加のオプションでトリガーできます(回答を参照)reloadGridpage

var $self = $(this), // or $("#gridId")
    p = $self.jqGrid("getGridParam"), // get all parameters
    newPage;

if (p.lastpage > 1) { // on the multipage grid
    newPage = p.page; // the current page
    if (p.reccount === 0 && p.page === p.lastpage) {
        // if after deleting there are no rows on the current page
        // which is the last page of the grid
        newPage -= 1; // go to the previous page
    }
    // reload grid to show rows from the page with rows.
    // depend on where you use the code fragment you could
    // need reloading only in case 
    // p.reccount === 0 && p.page === p.lastpage
    setTimeout(function () {
        $self .trigger("reloadGrid", [{ page: newPage}]);
    }, 50);
}

グリッド本体にメッセージ テキストを表示する必要がある場合は、回答用に作成されたデモに従うことができます。の場合、デモでは、メッセージ テキストを含む div のみが表示されます。reccount === 0

于 2014-09-24T07:19:26.480 に答える