1

私の問題は、jQGrid と OData データ ソース (.NET WCF) にあります。

jQgrid ページングが正しく機能するようにしようとしています。現在、基本的なデータの読み込みと列の並べ替えが機能しています。

これを行うには、関数をオーバーライドして、xmlReaderjQgrid に OData XML を解析させました。

xmlReader: {
    root: "feed",
    row: "entry",
    id: "entry>id",
    total: "m:count"
}

次に、サーバーへの要求で、serializeGridData関数をオーバーライドして、要求を OData 形式で送信しようとしました。

serializeGridData: function (obj) {
    obj["$inlinecount"] = "allpages";
    obj["$orderby"] = obj.sidx + " " + obj.sord;
    obj["$skip"] = (obj.page - 1) * obj.rows;
    return obj;
}

しかし問題は、OData 応答m:countにレコードの総数である のみが含まれていることです。ページネーションを正しく機能させるには、 jQGrid に少なくともtotalrecordscurrentpagenum、およびが必要だと思います。totalPages

私は何が欠けていますか?

副次的な質問として、Kendo UI Grid はどのようにこれを実現しているのか、コードから学べる (または持ち上げる) ことができるものはありますか??

サーバー側ページングのデモ - http: //demos.kendoui.c​​om/web/grid/remote-data.html

デモが oData ソースと通信する場所: http ://demos.kendoui.c​​om/service/Northwind.svc/Orders

同じ oData 形式を使用し、同じ応答を取得します - ページ番号がありません。

4

2 に答える 2

2

よろしければ...私が取り組んでいるプロジェクトで機能するようになりました。あなたが熟読できる要点があります...

https://gist.github.com/dealproc/6678280

于 2013-09-25T02:25:25.063 に答える
1

まず、XML の代わりに JSON を使用して OData WCF サービスと通信することをお勧めします。ASP.NET 4.X を使用する場合はautomaticFormatSelectionEnabled="true"、WCF サービスのエンドポイントの設定に属性を含めるだけで済みます。詳細については、回答を参照してください。その後は、jqGrid のオプションをdatatype: "json"使用 するだけです。ajaxGridOptions: { contentType: "application/json" }OData WCF サービスは JSON データを返します。

の例で、serializeGridDataあなたが答えます。あなたのケースでもオプションをそのまま使用できると思います。jsonReaderprmNames

于 2013-06-07T07:27:54.307 に答える