I’ve seen this topic addressed in a few places, but I had difficulty finding a solid answer. Let’s say you’ve got a rendering on your page, and that rendering has a data source with a field like a Droplink or a Multilist, which points to a location in the content tree for the author to choose item(s) to link to.
If what you want to do is choose an existing item to link to, you’d simply need to create an Edit Frame Button using the /sitecore/templates/System/WebEdit/Field Editor Button template to edit that Droplink or Multilist field, and then attach the button to your rendering.
But what if we want to also let the user create a new content item to link to without leaving the Experience Editor? We can add another Edit Frame Button that uses the /sitecore/templates/System/WebEdit/WebEdit Button template. We set the Click command to “webedit:new” and add an “itemid” parameter, containing the ID of the parent item that we want to create the new content underneath. The parent item should have insert options set on its template’s Standard Values, so Sitecore can populate the list of templates to use for the new content.
Adding this to a rendering will give you a button in the Edit Frame which brings up a window like this:
You can then name your content and click OK to save it. Then, all that’s left is to link your new content to your Droplink or Multilist field (either in the Content Editor, or using the aforementioned Field Editor Button in the Experience Editor) and go back to authoring.