2012-01-11 14 views
0

これは私の最初のJQgridでの試行で、jsonmap属性がcolmodelにある場合は、ドキュメントと混同されています。今のところ、私はすべてのデータを取得していますが、放火犯から、私は、各COLに取得していますすべてがあることを参照してください。jqgridデータにグリッドが設定されていない

<td aria-describedby="list_MEMBERID" title="" style="" role="gridcell">&nbsp;</td>

することは、誰かが私が間違って正確にやっているかを説明できますか?

JSON:

{ 
"ROWS": [ 
    { 
     "ID": 508, 
     "CELLS": { 
      "PHONE": "847-382-8872", 
      "STATE": "IL", 
      "ZIP": 60010, 
      "NAME": "Norton's U.S.A.", 
      "DESC": "We sell only products made in the United States!We offer an eclectic mix of common household items from toys to tools, glassware to garden supplies, fashions to food and so much more. When you shop at Norton's U.S.A, you help keep America working! ", 
      "CITY": "Riverwoods", 
      "ADDR": "400 Lageschulte Street" 
     } 
    } 
], 
"PAGE": 1, 
"RECORDS": 1, 
"TOTAL": 1 
} 

Javascriptを:jsonReaderjsonmapについて

$(function(){ 
    $("#list").jqGrid({ 
    url:'cfc/buildData.cfc?method=getDining', 
    datatype: 'json', 
    mtype: 'GET', 
    colNames:['Member ID','Member Name', 'Address','City','Zip Code','State', 'Phone', 'Description'], 
    colModel :[ 
     {name:'MEMBERID', index:'MEMBERID', jsonmap:'MEMBERID', width:60}, 
     {name:'NAME', index:'NAME', jsonmap:'NAME', width:90}, 
     {name:'ADDR', index:'ADDR', jsonmap:'ADDR', width:80, align:'right'}, 
     {name:'CITY', index:'CITY', jsonmap:'CITY', width:80, align:'right'}, 
     {name:'ZIP', index:'ZIP', jsonmap:'ZIP', width:80, align:'right'}, 
     {name:'STATE', index:'STATE', jsonmap:'STATE', width:80, align:'right'}, 
     {name:'PHONE', index:'PHONE', jsonmap:'PHONE', width:80, align:'right'}, 
     {name:'DESC', index:'DESC', jsonmap:'DESC', width:200, sortable:false} 
    ], 
    pager: '#pager', 
    rowNum: 10, 
    rowList:[10,20,30], 
    sortname: 'MEMBERID', 
    sortorder: 'desc', 
    viewrecords: true, 
    gridview: true, 
    caption: 'Lake County Members', 

    jsonReader : { 
     root: "ROWS", 
     page: "PAGE", 
     total: "TOTAL", 
     records: "RECORDS", 
     repeatitems: true, 
     cell: "CELLS", 
     id: "MEMBERID", 
     subgrid: {root:"ROWS", 
      repeatitems: true, 
      cell:"CELLS" 
     } 
    } 

    }); 
}); 

答えて

2

The documentationは最初の読書のための本当に難しいです。

jsonReaderの最も重要な特性はrepeatitemsです。デフォルト値はrepeatitems: trueです。これは、JSONのデータの行の形式は

{"id" :"1", "cell": ["cell11", "cell12", "cell13"]} 

でなければなりませんそれはcellプロパティが値として文字列の配列を持っている必要があることを言及することが重要だということを意味します。 jsonmapプロパティは無視されます

jsonReader: {repeatitems: true}を使用する場合は、デフォルトのjsonReaderの1つのプロパティだけを上書きします。そうJSON入力の行を表すデータの形式は何らcell場合

{"id": "abc", "col1": false, "col3": 123, "col2": "cell12"} 

ないはず入力に使用されるべきです。列のデータは、cell配列内の位置ではなく、という名前でと識別されます。プロパティ名col1,col2col3は、nameプロパティのいずれかとなります。定義されている場合は、colModelまたはjsonmapです。もしxカラムjsonmap: coordinates.xおよびyカラムjsonmap: coordinates.yに定義できる

{"id": "abc", "col1": false, "coordinates": {"x": 123, "y": "cell12"}} 

ような入力のより複雑な形式の場合

あなたの例の場合、私はあなたがJSON入力で任意のデータが含まれていないため、列モデルから'MEMBERID'を削除する

{ 
    "ROWS": [ 
     { 
      "ID": 508, 
      "PHONE": "847-382-8872", 
      "STATE": "IL", 
      "ZIP": 60010, 
      "NAME": "Norton's U.S.A.", 
      "DESC": "We sell only products made in the United States!We offer an eclectic mix of common household items from toys to tools, glassware to garden supplies, fashions to food and so much more. When you shop at Norton's U.S.A, you help keep America working! ", 
      "CITY": "Riverwoods", 
      "ADDR": "400 Lageschulte Street" 
     } 
    ], 
    "PAGE": 1, 
    "RECORDS": 1, 
    "TOTAL": 1 
} 
  • にJSONデータのフォーマットを変更することをお勧めします。
  • sortname: 'MEMBERID'を削除するか、既存の列に変更してください。
  • jsonReaderグリッドの行(表の<tr>要素のID)のIDの値から得るであろう

    jsonReader : { 
        root: "ROWS", 
        page: "PAGE", 
        total: "TOTAL", 
        records: "RECORDS", 
        repeatitems: false, 
        id: "ID", 
    } 
    

    として使用されるべき全てjsonmap特性

を除去JSON入力の'ID'プロパティ。 IDの値には注意が必要です。ユニークがページ全体に存在する必要があります。

上記の変更後、グリッドにデータが表示されます。the demoを参照してください。私はheight: 'auto'パラメータを追加して、グリッド内の不要なスペースのサイズを減らしました。