I just upgraded our dhtmlx codebase from 2.1 to 2.6 and now I’ve got a treegrid that won’t load.
I see this error:
this._fillers is undefined
If I comment out the boardGrid.kidsXmlFile line, the error goes away, but the grid still hangs (the loading message never goes away).
Here’s the init code:
boardGrid = new dhtmlXGridObject('boardGridBox${form.boardId}');
boardGrid.setSkin("light");
boardGrid.setImagePath("/images/dhtmlx/");
boardGrid.setHeader('Topic,Poster,Posted,Latest Reply');
boardGrid.setInitWidthsP('50,20,15,15');
boardGrid.setColSorting('str,str,str,str')
boardGrid.setColAlign("left,left,left,left");
boardGrid.setColTypes("tree,ro,ro,ro");
boardGrid.enableTooltips("false,false,false,false");
boardGrid.enableAlterCss("grideven","gridodd");
boardGrid.setScrollbarWidthCorrection(20);
boardGrid.enableRowsHover(true, "rowsHover");
boardGrid.kidsXmlFile = "kidsJson.do";
boardGrid.setLoadingMessage("Loading Messages...");
boardGrid.setMultiselect(true);
boardGrid.setColumnIds("newPostSubject,newPostDueDate,poster,posted,latestReply");
boardGrid.setEditable(true);
boardGrid.enableTreeCellEdit(true);
boardGrid.enableEditEvents(false, false, false);
boardGrid.setOnRightClick(Board${form.boardId}.doBoardRightClick);
boardGrid.enableDragAndDrop(true);
boardGrid.attachEvent("onDragIn",
function(sid,tid) {
return dhx_allow_drop();
});
boardGrid.attachEvent("onDrag",
function(sid,tid) {
// cut ...
});
boardGrid.enableSmartRendering(true);
boardGrid.init();
boardGrid.setOnRowDblClickedHandler(Board${form.boardId}.doRowDoubleClick);
boardGrid.attachEvent("onRowSelect", dojo.hitch(Board${form.boardId}, "doRowClick"));
boardGridDataProcessor = new dataProcessor("${form.actionName}.do?op=updateAssignment&boardType=${form.boardType}&boardId=${form.boardId}");
boardGridDataProcessor.enableDataNames(true);
boardGridDataProcessor.setUpdateMode("cell");
boardGridDataProcessor.init(Board${form.boardId}.boardGrid);
boardGrid.load("${form.actionName}.do?op=boardJson&boardType=${form.boardType}&boardId=${form.boardId}&sn="+ (new Date()).valueOf(), "json");
boardGrid.setOnLoadingEnd(Board${form.boardId}.boardListLoadEnd);
Here is a sample of the JSON that is loaded (this has not changed - it worked in 2.1):
{“rows”:[
{“id”:5002786,“userdata”:{“blocked”:false,“isStudentViewable”:false,“isRootAssignment”:true},“data”:[{“value”:“test1”,“image”:“inbox.png”},"",“pmanning@test.net”,“09/07/2010 1:52 PM”,“09/07/2010 1:52 PM”]},
{“id”:5002442,“userdata”:{“blocked”:false,“isStudentViewable”:false,“isRootAssignment”:true},“data”:[{“value”:“Assignment 8”,“image”:“inbox.png”},“04/23/2010”,“pmanning@test.net”,“04/20/2010 3:39 PM”,“04/20/2010 3:39 PM”]},{“id”:5002441,“userdata”:{“blocked”:false,“isStudentViewable”:false,“isRootAssignment”:true},“data”:[{“value”:“Assignment 6”,“image”:“inbox.png”},"",“pmanning@test.net”,“04/20/2010 3:38 PM”,“04/20/2010 3:38 PM”]},{“id”:5002440,“userdata”:{“blocked”:false,“isStudentViewable”:false,“isRootAssignment”:true},“data”:[{“value”:“Assignment 5”,“image”:“inbox.png”},“04/30/2010”,“pmanning@test.net”,“04/20/2010 3:37 PM”,“04/20/2010 3:37 PM”]},{“id”:5002439,“userdata”:{“blocked”:false,“isStudentViewable”:false,“isRootAssignment”:true},“data”:[{“value”:“Assignment 4”,“image”:“inbox.png”},"",“pmanning@test.net”,“04/20/2010 3:35 PM”,“04/20/2010 3:35 PM”]},{“id”:5002437,“userdata”:{“blocked”:false,“isStudentViewable”:false,“isRootAssignment”:true},“xmlkids”:1,“data”:[{“value”:“Assignment 3 #1”,“image”:“inbox.png”},"",“pmanning@test.net”,“04/20/2010 3:33 PM”,“04/20/2010 3:34 PM”]},{“id”:5002436,“userdata”:{“blocked”:false,“isStudentViewable”:false,“isRootAssignment”:true},“data”:[{“value”:“Assignment 2”,“image”:“inbox.png”},“04/29/2010”,“pmanning@test.net”,“04/20/2010 3:31 PM”,“04/20/2010 3:31 PM”]},{“id”:5002434,“userdata”:{“blocked”:false,“isStudentViewable”:false,“isRootAssignment”:true},“xmlkids”:1,“data”:[{“value”:“Assignment 1 #1”,“image”:“inbox.png”},“04/30/2010”,“pmanning@test.net”,“04/20/2010 3:28 PM”,“04/20/2010 3:31 PM”]}]}