Hi @keson
As far as I can see, the last example in the conversation is almost correct, but the main issue here is the availability of data ( the list.getItem(id) returns undefined ).
The order of initialization makes nested widgets accessible within the $ready handlers (example: Code Snippet), but the component’s initialization and data loading are separate processes.
The data loading is always an async process, and although the client-side data is parsed pretty quickly (delay is usually not required after full webix.ui execution), a reference to the data of Datatable (in gridsuggest) may point to the empty storage until the full process is finalized.
To ensure that the data is obtained (either for client-side or remote data loading), you can use the waitData promise instead of custom timeout: Code Snippet
I have also commented two extra properties in the protoUI config (as they do not have an actual impact).