我有大量物料清單(BOM),我已將其加載到jqGrid Treegrid中。它有大約500行。由於各種原因,我試圖將數據塊保持在64K以下,所以對於較大的BOM,我不會加載最深的葉子,例如比級別6更深的任何東西。我想動態加載那些當用戶選擇擴展最初開始崩潰,因爲它沒有加載。大多數一切按預期工作。用戶可以摺疊並展開已加載的任何節點。但是,當用戶單擊以展開缺少子節點的節點時,服務器將返回其所有子節點,並且它會正確顯示在treegrid中。如果其中的任何一個孩子有摺疊的節點,用戶可以將這些擴展到分支的末尾。但那是正常行爲停止的地方。一旦用戶單擊以展開缺少子節點的任何節點,只有最近的服務器響應中包含的節點才能展開。沒有什麼可以摺疊。所報告的錯誤是:jqGrid Treegrid在數據的動態加載之後不展開和摺疊行
An unexpected error has occurred:
'Unable to get property 'isleaf' of undefined or null reference'
The url is ''
The line number is 92
該行數是指是grid.treegrid.js
這裏所述源文件是用於擴展小節點失蹤兒童的示例響應。
{"page":"1",
"total":"1",
"records":"3",
"rows":[
{"id":"491","hide":false,"cell":["491","M-065934-1","BRACKET","M","1","1",".00","","$.00","478","7","false","false"]},
{"id":"492","hide":false,"cell":["492","M-065934-2","COLLAR","M","1","1",".00","","$.00","478","7","false","true"]},
{"id":"493","hide":false,"cell":["493","PD M6 X 20","PIN,DOWEL","P","2","2",".00","","$.00","478","7","false","true"]}
]}
每行中的最後四個值是父級,級別,展開和isleaf。在這種情況下,一旦數據被加載,只有行491是可擴展的,並且圍繞這三行的任何行(包括父級478)都不可摺疊。我需要看什麼來確定問題?裝載有沒有影響?我不是手動設置加載任何行。當我加載網格時,我知道哪些行有卸載的子節點。我是否需要手動設置該值?
的jqGrid(免費):4.4.3
jQuery的:1.9.0
jQuery用戶界面:23年8月1日
編輯:我已經升級到以下版本: 的jqGrid(免費):4.11 0.1
的jQuery:1.12.4
jQuery用戶界面:1.10.4
除了這些我碰到與正在加載require.js問題的版本,但似乎並沒有發揮好與我的配置。我得到相同的錯誤(雖然行號不同),現在是錯誤:
An unexpected error has occurred:
'Unable to get property 'expanded' of undefined or null reference'
The url is 'http://as400/rui/scripts/jqgrid-4.11.1/js/jquery.jqgrid.min.js?v=5.15b'
The line number is 554
問題的根源保持不變。雖然treegrid數據在網格中保持可見,但它似乎對jqgrid腳本不可見。在加載之前那些行的屬性是不可訪問的,但在更新期間加載的行確實可用,可擴展(一次),並且位於網格中的正確位置。
您使用哪個版本的jqGrid(可以使用)以及從哪個版本的jqGrid([免費jqGrid](https://github.com/free-jqgrid/jqGrid),商業版[Guriddo jqGrid JS] /guriddo.net/?page_id=103334)或<= 4.7版本中的舊jqGrid)。 'grid.treegrid.js'中的第92行在不同版本的jqGrid中有不同的內容。此外,您發佈的數據應該與您應該包含的JavaScript代碼相對應。我建議你嘗試從[CDN](https://github.com/free-jqgrid/jqGrid/wiki/Access-free-jqGrid-from-different-CDNs)加載免費的jqGrid 4.13.4並重複測試。 – Oleg
是否有關於4.13.4的majic?我從github下載了4.13.5,但沒有奏效。我使用的軟件是一個包含jqGrid的開源框架。我猜這已經很老了。 – jmarkmurphy
1)版本4.4.3太舊,並且很長一段時間沒有任何支持。 2)我改變了免費的jqGrid fork中的TreeGrid的代碼來提高它的性能。你寫道你在TreeGrid中加載了許多節點。因此它可能對你有幫助。 3)如果你的代碼不工作,那麼你應該創建演示,該演示使用非微型jqGrid('jquery.jqgrid.src.js')並重現該問題。或者,您應該至少發佈創建jqGrid的JavaScript代碼。 – Oleg