2011-07-28 10 views
0

jqGrid 4.1.2を使用してテーブルをレンダリングしようとしましたが、サーバー側からJSON応答を取得できましたが、空のテーブルが取得されています。 HERESに私のサンプルJSONデータ:それは問題ではありませんので、私は、jqgrid-ロケールen.jsファイルを追加したjqGridは空のテーブルをレンダリングします

{ 
    "response":{ 
     "total":2, 
     "page":1, 
     "rows":[{ 
       "id":135060, 
       "cell":{ 
        "id":135060, 
        "name":"12" 
       } 
      }, 
      { 
       "id":115060, 
       "cell":{ 
        "id":115060, 
        "name":"12345" 
       } 
      } 
     ] 
    }, 
    "status":"SUCCESS", 
    "errors":[] 
} 

。これを少し時間を費やした後、jqGridが期待しているJSON形式と関係があると感じています。問題がある場合は、上記のJSON形式を受け入れるようにjqGridを構成する方法を教えてください。

ありがとうございます!

答えて

0

デフォルトでは、jqGridはセルキーのデータにname:valueの組み合わせが含まれるとは想定していません。 name:valueの組み合わせを使用する場合は、jsonReaderオプションを使用してrepeatitemsをfalseに設定する必要があります。各キーの名前が対応するcolModelの名前とまったく同じであることも確認してください。

さらにコードを記述するのは難しいです。このような質問をしていますが、設定しているものは何でも他のオプションと一緒にこのような何かをしようとすると、あなたはどちらか戻ったレコードのキーを渡していないよう

$("#id").jqGrid({ 
    url: "url" 
    mtype: "post", 
    datatype: "json", 
    jsonReader: { 
     repeatitems: false, 
     root: "response.rows", 
     cell: "cell", 
     id: "id", 
     page: "page", 
     total: "total", 
     records: "records" 
    }, 
}); 

に見えます...すべてのコードを投稿しなければなりませんこれはサーバー側の呼び出しによって返された行の総数です

1

ここで問題が解決しない場合は、解決策です。その後、データが読み込まれます

jsonReader : { 
    repeatitems : false, 
    root: 'response.rows', 
    page: 'response.page', 
    total: 'response.page', 
    records: function (obj) { return obj.response.rows.length; } 
} 

the demoを参照してください):あなたは、次のjsonReaderを使用する必要があります。私はtotalプロパティをJSONデータで正しく使用していて、recordsプロパティをまったく設定していないと思います。

さらに、標準応答の内部にエラーメッセージを設定しないでください。 HTTPプロトコルはstatus codesをサポートしています。サーバー側でエラーが検出された場合、サーバーはHTTPヘッダーにerror HTTP codeを設定する必要があります。この場合、jqGridでのデータ処理の順序はanother wayであり、エラーメッセージをデコードしてユーザーに結果を表示するには、loadErrorイベントを使用する必要があります。

関連する問題