0

JSONリクエストで埋められるjqGridがあります。これは、リクエストがbase64でエンコードされたデータでサーバーに返されるため、グリッドに割り当てる前にデータをデコードする必要があります。

基本的に私はこのようなものが必要です:

$( "#grid" ).jqGrid( {
    datatype: "json",
    colNames: ["id", "Num", "Name", "Code"],
    colModel: [
        { name: "id", index: "id", width: 30, sortable: true, resizable: false },
        { name: "num", index: "num", width: 150, sortable: true, resizable: false },
        { name: "name", index: "name", width: 250, sortable: true, resizable: false },
        { name: "code", index: "code", width: 150, sortable: true, resizable: false },
    ],
    multiselect: true,
    width: "760",
    height: "100%",
    heightMetric: "%",
    shrinkToFit: false,
    rowNum: 20,
    rowList: [20,30,60],
    pager: "#pager",
    sortname: "id",
    viewrecords: true,
    sortorder: "asc",
    headertitles : true,
    caption: "Loading...",
    beforeProcessing: function(data){
       data = decompress(data); // Like this
    }
})
4

1 に答える 1

1

コールバック関数beforeProcessingは、必要なものをすべて実装できる正しい場所です。正確な実装は、サーバーから返されるデータの形式によって異なります。使用する場合datatype: "json"、サーバーから返されるデータは通常、JSON 文字列としてシリアル化されるオブジェクトです。jqGrid は内部的に使用しjQuery.ajax、JSON 文字列を自動的にデコードしてオブジェクトに変換します。したがって、コールバックの入力dataパラメータはbeforeProcessing、サーバーから返されたオブジェクトです。jqGrid の追加オプションを使用しない場合jsonReader、jqGrid はここで説明されている標準形式で入力データを待機します。したがって、dataオブジェクトの予想されるプロパティ ( rowspagetotalおよびrecords) サーバーから返された入力データに基づきます。サーバーから返されたデータの例を投稿していないため、これ以上詳細な例を示すことはできません。

于 2012-10-23T20:16:51.887 に答える