Dynamical Loading mode allows to load data not all at once, but partially, by client side request ( which decrease initial loading time and decrease loading of server )
There are 2 properties that enable dynamic loading: EnableDynamicLoading (for dhtmlxTreeConnector and dhtmlxTreeGrid connector) and SetDynamicLoading(int) (for dhtmlxGridConnector and dhtmlxComboConnector). EnableDynamicLoading allows or disables dynamic loading of child items (rows, nodes), thus it is available only for dhtmlxTree and dhtmlxTreeGrid connectors. SetDynamicLoading in its turn sets number of items loaded per single requests. Only list controls are using it.
EnableDynamicLoading usage example:
dhtmlxTreeConnector connector = new dhtmlxTreeConnector(/*.....*/); connector.EnableDynamicLoading = true;//enable dynamic branches loading
SetDynamicLoading usage example:
dhtmlxGridConnector connector = new dhtmlxGridConnector(/*.....*/); connector.SetDynamicLoading(30);//enable partial grid loading (30 records per request)
To work correctly, related mode need to be enabled on client side as well ( for grid - smart rendring | paging enabled, for tree|treegrid - dynamical loading enabled, for combo - autocomplete enabled )
Normally connector make all operations automatically, and need no customization. Check for child nodes/rows existance is also built into connector. If for some reasons you need to customize this check, you can attach event handler to RequestHasChildren event for Tree or TreeGrid connectors. Handler will receive reference to node/row is being checked and you can assign HasChildren property value depending on your own logic.
dhtmlxTreeGridConnector connector = new dhtmlxTreeGridConnector(/*...*/); connector.RequestHasChildren += new EventHandler<RequestChildrenEventArgs<dhtmlxTreeGridDataItem>>(connector_RequestHasChildren); void connector_RequestHasChildren(object sender, RequestChildrenEventArgs<dhtmlxTreeGridDataItem> e) { if (TodayIsMonday) e.HasChildren = false;//no children on mondays else e.HasChildren = true; }