Hello dear developers.
I upload data from the server in this form....
here @id and @p_id are unique keys for tree nodes and their parents.
For simple TreeGrid I use this code
and it works great.
Now I decided to use the same thing in SelectItem and it doesn't work. I see an empty list for selection.
I have to go through all the nodes in the tree and perform the following attribute assignments.
And refuse a line of code
courseListProperties.setDataProperties(courseTree);
How do I avoid this and make setDataProperties work?
Version v12.1p_2020-04-03
I upload data from the server in this form....
Code:
"title": "Project DEMO", "node": "project", "@id": "6192", "@p_id": "0", "children": [ { "title": "course template micro slides - L/R", "node": "course", "@id": "17519", "@p_id": "6192", "children": [ { "title": "1. Chapter Micro slides", "node": "unit", "@id": "17764", "@p_id": "17519", "children": [
For simple TreeGrid I use this code
Code:
Tree courseTree = new Tree(); courseTree.setIdField(CONSTANT._ID); courseTree.setParentIdField(CONSTANT._PID); TreeGrid courseTreeGrid= new TreeGrid(object); courseTreeGrid.setKeepParentsOnFilter(true); courseTreeGrid.setDataProperties(courseTree);
Now I decided to use the same thing in SelectItem and it doesn't work. I see an empty list for selection.
Code:
ListGridField titleField = new ListGridField(CONSTANT.TITLE); JavaScriptObject object = JavaScriptObject.createObject(); JSOHelper.setAttribute(object, "fireItemClickForFolders", true); Tree courseTree = new Tree(); courseTree.setIdField(CONSTANT._ID); courseTree.setParentIdField(CONSTANT._PID); TreeGrid courseListProperties = new TreeGrid(object); courseListProperties.setKeepParentsOnFilter(true); courseListProperties.setDataProperties(courseTree); selectedCourse = new SelectItem(); selectedCourse.setName("selectedCourse"); selectedCourse.setWidth(300); selectedCourse.setPickListWidth(400); selectedCourse.setHoverWidth(400); selectedCourse.setDataSetType("tree"); selectedCourse.setPickListProperties(courseListProperties); selectedCourse.setShowTitle(false); selectedCourse.setValueField(CONSTANT._ID); selectedCourse.setDisplayField(CONSTANT.TITLE); selectedCourse.setPickListFields(titleField); selectedCourse.setMultiple(false); selectedCourse.setAllowEmptyValue(false); selectedCourse.setAddUnknownValues(false); selectedCourse.setAutoFetchData(false); selectedCourse.setOptionDataSource(projectTreeData); selectedCourse.setAutoOpenTree("all");
And refuse a line of code
courseListProperties.setDataProperties(courseTree);
Code:
private void setProjectNodesProperties(Record[] records, String chProperty, String dbName) { for (Record record : records) { String id = record.getAttribute(CONSTANT._ID); record.setAttribute("id", id); id = record.getAttribute(CONSTANT._PID); record.setAttribute("parentId", id); Record[] childs = record.getAttributeAsRecordArray(chProperty); if(childs != null && childs.length > 0) { setProjectNodesProperties(childs, chProperty, dbName); } } }
Version v12.1p_2020-04-03
Comment