1

サーバー側のページングを使用して igGrid を構築しています。グリッドは、Entity Framework を使用して Visual Studio によって自動生成された OData v3 コントローラーにフックされます。フィルター操作と並べ替え操作は正常に機能していますが、ページングは​​機能していません。

問題は、グリッドが page=x と pageSize=y をクエリ文字列に入れているように見えますが、OData 形式は $top=x と $skip=y です。$skip の値は index * pageSize である必要があるため、page と pageSize の名前を変更するだけでは不十分であることに注意してください。ページとページサイズをサポートするためにコントローラーを編集する方法を複数試しましたが、役に立ちませんでした。

$top と $skip を特徴とする OData 要求 URL をブラウザーのアドレス バーに手動で入力して、必要な結果を得ることができます。グリッドで $top と $skip を使用する方法はありますか? グリッド自体は ac# コントローラーで定義され、モデルの一部としてページに渡されます。そのため、GridPaging オブジェクトの pageIndexUrlKey および pageSizeUrlKey プロパティにアクセスできないことに気付きました。grid.OData は true に設定されています。

4

1 に答える 1

1

デフォルトでは、グリッド MVC ヘルパー ラッパーは明示的にpageSizeUrlKeyおよびpageIndexUrlKeyをカスタム クエリ パラメータに設定します:pageSizeおよびpage. OData パラメータを送信するには、JavaScript でpageSizeUrlKeyandpageIndexUrlKeyを null に設定する必要があります。次のコードをページの下部に配置します。

    $(function () {
        $("#grid1").on("iggriddatabinding", function (evt, ui) {
            var features = ui.owner.options.features, i;
            for (var i = 0; i < features.length; i++) {
                if (features[i].name === "Paging") {
                    features[i].pageSizeUrlKey = null;
                    features[i].pageIndexUrlKey = null;
                }
            }
        });
    });

グリッドの作成中にイベントが発生し、グリッドが作成される前にバインドする必要があるため、このコードをグリッド MVC 構成の前に配置する必要があります。

于 2016-11-09T14:34:38.757 に答える