Currently RadMenu and RadContextMenu support Web Service loading only for sub-items. The root items must be created manually.
Root items can be manipulated on the client-side and you can manually populate them from a WS, but the easier option would be to place them in a sub-item. You can then use the code snippet that Guo posted to preload them if needed.
Passing additional information to the WS is possible using the OnClientItemPopulating
event. The context property of the event arguments will be passed to the WS.
There is a help topic that demonstrates how to do this, but with RadMenu:
One additional thing that you'll need to do is to clear the loaded items when the menu is closed, so they'll be re-populated the next time it's open. You can do this in the OnClientHidden
the Telerik team