Alternate for Input.StartDropDownContainer()

A common practice when developing templates is to use Input.StartDropownContainer() within a panel to stack different content / widget types. For example, a user can use this option to render a banner stacked on top of a rotating carousel followed by some WYSIWYG content, etc... The problem with this approach is that when you edit an asset, the Input.StartDropDownContainer() control renders all of the fields for all of the different content / widget types even if the type is not chosen. Only the chosen type's fields are displayed but the rest are just hidden from view. Having this in a panel creates tons of unnecessary fields and this causes performance issues since it takes time for all of the hidden fields to be rendered. Additionally, all of the hidden fields get saved to the database so it also requires time to load the data. The idea is to create an alternative for this control to remedy the potential performance issues when used in this fashion. This would allow for much more flexible templates. 

1 Comment
AriWeissman
Director of UX
Director of UX

Great idea!

We are curently working on a solution to the performance issues created by rendering all of the hidden fields. Once that is in place, we'll keep an eye on if we need to create an alternative for this control.