Subviews allow showing any Webix UI as the content of a row. They work for DataTable and TreeTable only.
All you need to do is to describe the structure of the embedded UI in the subview property. You can read more in the documentation or check the live demo.
Active content allows showing Webix Form controls as the content of a cell. It can be useful if you want to show something more complicated than buttons or icons (which can be easily added through simple HTML templates). For example, active content can be used to show segmented buttons or a slider as the content of a cell.
To begin with, you need to extend a datatable with the ActiveContent mixin:
}, webix.ui.datatable, webix.ActiveContent);
After that, we need to describe the content that we wish to embed through the activeContent property:
As the last step, we need to use the active content element in the template of a cell.
Adding active content is the most complicated way to embed new elements in a datatable, so use it as a last resort.
You can read some extra details in the documentation
ActiveContent vs Inline Editors
ActiveContent may seem to be perfect for using as grid editors. But it’s not a good idea. ActiveContent can’t serve as a substitute for the inline editors. If you want an editor to be always visible, you just need to change the style of rendering as it’s made in the example below:
template: "<span class='webix_icon fa-angle-down arrow'></span>#status# "},
As you can see, the template contains both a custom icon for the select-like look and the content of a cell.
Do I miss something?
The above described techniques (except for subviews) can be used not only with DataTable, but also with other data components, such as lists, trees, treetables, dataviews and others. So, you can embed and mix UI controls to organize a rich UI in your apps.
As far as I can see, these techniques cover most of real life use-cases. If I’ve missed something, feel free to write your questions and ideas in the comments.