The page you open in the RadWIndow is disposed in three cases when reopening a RadWindow which can cause you to lose your dynamically created items:
1) the entire page that holds the RadWindow is disposed (a full postback) or at least this RadWindow is disposed (an AJAX request that updates it)
2) the RadWindow is closed on the client and DestroyOnClose is set to true
3) the RadWindow is closed on the client and has the ReloadOnShow set to true, which appends a random querystring to the iframe's src when it is reopened, which causes the browser to perform a new request for the page, thus ignoring viewstate from previous postbacks inside the content page. If you create your items programmatically they will not be persisted across different requests to the page. This behavior would be the same if you load your content page directly in the browser and fully reload it (add some querystring to its address or a full browser reload, usually ctrl+f5).
A fourth case is some custom code that reloads the content of the RadWindow (e.g. a call to its reload() method, a change in its URL, e.g. via the setUrl() or radopen() methods), so you may also want to check for this.
All the best,
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed