We currently don't support automatic web service population for the root items of the context menu. We agree that this makes perfect sense in this scenario and we'll consider it for implementation.
The per-node caching is also a very sensible idea, but it'll be an opt-in feature, should we proceed with implementing it.
As for the moment, the best approach would be to include a "dummy" item and populate the menu in the OnClientContextMenuShowing by first removing the placeholder item.
Caching can be implemented in the way that you describe. You can store the retrieved items in a cache object with the node index as key in the OnClientContextMenuShown
event. Then as you proceed to populate the items, you'll check for a cache hit and use it instead of the web service.
Thank you for the good suggestions. As a token of our gratitude for your involvement, your Telerik points have been updated.
the Telerik team