2012-03-28 22 views
1

私はjqGridでtreegridを使用しています。このプラグインではかなり新しいです。私はツリーグリッド機能を正しく動作させることができません。展開ボタンをクリックすると、初めて正常に動作します。次回、クリックするとJavaScriptエラーが表示されます。 $t.p.data[pos] is undefinedこれはjqGridのsetTreeNodeメソッドにあります。jqGridのTreeGridが正しく動作しません。

私はオレグか誰かが助けてくれ、私に指示を与えることを願っています。次のように

私の構成は次のとおりです。カラムは以下の通りである拡張されたとき

var grid = $("#grid").jqGrid({ 
    treeGrid: true, 
    treeGridModel: 'adjacency', 
    ExpandColumn: 'businessAreaName', 
    ExpandColClick : true, 
    url:'agileProgramme/records.do', 
    datatype: 'json', 
    mtype: 'GET', 
    colNames:['Id' 
       , 'Business Area' 
       , 'Investment' 
       , 'Org' 
       , 'Goal' 
    ], 
    colModel:[ 
/*00*/   {name:'agileProgrammeId',index:'agileProgrammeId', width:0, editable:false,hidden:true}, 
/*01*/   {name:'businessAreaName',index:'businessAreaName', width:160, editable:false}, 
/*02*/   {name:'programmeName',index:'programmeName', width:150, editable:false, classes:'link'}, 
/*03*/   {name:'org',index:'org', width:50, editable:false, classes:'orgHierarchy', sortable : false}, 
/*04*/   {name:'goal',index:'goal', width:70, editable:false} 
    ], 
    treeReader : { 
     level_field: "level", 
     parent_id_field: "parent", 
     leaf_field: "leaf", 
     expanded_field: "expanded" 
    }, 
    autowidth: true, 
    height: 240, 
    pager: '#pager', 
    sortname: 'id', 
    sortorder: "asc", 
    toolbar:[true,"top"], 
    caption:"TableGridDemo", 
    emptyrecords: "Empty records", 
    loadonce: true, 
    jsonReader : { 
     root: "rows", 
     page: "page", 
     total: "total", 
     records: "records", 
     repeatitems: false, 
     cell: "cell", 
     id: "agileProgrammeId" 
    } 
}); 

データが返さ。

{ 
    "page":"1", 
    "total":"1", 
    "records":"1", 
    "rows":[ 
     { 
     "agileProgrammeId":2, 
     "businessAreaName":"child", 
     "programmeName":"childSomething", 
     "goal":null, 
     "parent":1, 
     "level":"1", 
     "leaf":true, 
     "expanded":false 
     } 
    ] 
} 

ここには最初に読み込まれたデータがあります。

{ 
    "page":"1", 
    "total":"1", 
    "records":"1", 
    "rows":[ 
     { 
     "agileProgrammeId":1, 
     "businessAreaName":"parent", 
     "programmeName":"parentsomething", 
     "goal":null, 
     "parent":null, 
     "level":"0", 
     "leaf":false, 
     "expanded":false 
     } 
    ] 
} 
+0

エラー '$ t.p.data [pos]'はグリッドに最初に読み込まれたデータに問題があるようです。 jqGridの作成時に '' agileProgramme/records.do''によって返されたデータを含めることができますか?データには、投稿した子ノードの親であるID「475」の項目が含まれている必要があります。 – Oleg

+0

お返事ありがとうございました。私は最初のデータを貼り付けました。 –

+0

Oleg、上記の5つのフィールドとは別に、応答データにさらに余分な属性があります。しかし、ColModelでは、私は今のところこの列を上記の5列だけに制限しています。 –

答えて

2

私はあなたが投稿して理由がローカルデータをloadonce: trueの場合には削除されthe two lines of codeであることを知るデータでグリッドをデバッグ。

TreeGridは、「標準」グリッドの場合はloadonce: trueと同じ方法でローカルに以前ロードされたデータをローカルに保存します。したがって、loadonce: trueの設定はTreeGridの場合は意味がありません。さらに、TreeGridの場合にはloadonce: trueを設定することで、どのように副作用が起こるかを知ることができます。

問題を解決するには、TreeGridの定義からloadonce: trueを削除するだけです。

更新済み:今すぐ投稿しましたthe suggestion:今後の問題を解決してください。

+0

ありがとうOleg。あなたは私の一日を救った。本当にあなたの助けに感謝します。 –

+0

素晴らしい作品Oleg。 –

+0

@ネフ:大歓迎です! – Oleg

関連する問題