Dynamic Loading mode allows loading data partially, not all at once, by a client-side request. It decreases initial loading time and loading of the server.
To work correctly, the related mode should be enabled on the client side:
To activate the mode you should use the method dynamic_loading():
In the 'dynamic loading' mode you can't use GROUP BY within SQL query
Normally, the connector makes all operations automatically and doesn't need customization.
But in case of the dynamic loading into Tree/TreeGrid, a database can contain a field indicating if the current item is a branch or a leaf. In the beforeRender event handler you are allowed to mark an item as a leaf or a branch (it decreases the number of SQL queries and increases the performance).
<cffunction name="custom_define"> <cfargument name="item"> <cfif ARGUMENTS.item.get_value("is_a_branch")> <cfset data.set_kids(0)> <cfelse> <cfset data.set_kids(1)> </cfif> </cffunction> <cfset tree.event.attach("beforeRender",custom_define)>
The same approach can be used for the non-dynamic mode of tree/treeGrid as well. It's not obligatory but lets you increase data generation performance.