I think I solved my own problem. This was a lot easier than I thought.
On the RadWindowManager I call a javascript function OnClientClose="OnClientClose"
On the same page as the RadWindowManager I added the following javascript function which postbacks the Advanced Form:
function OnClientClose(oWnd, args) {
__doPostBack('', '');
}
And then in the AdvancedFormVB.ascx.vb Page_Load I check to see if my session variable (which I set in my popup customer maintenance and search screen) is set and populate the necessary textbox / panels as appropriate e.g. :
If Not Session("returnedValues") Is Nothing Then
Dim results As Stack = DirectCast(Session("returnedValues"), Stack)
While results.Count > 0
SubjectText.Text += results.Pop()
End While
End If
You may only want to refresh the Advanced Form if someone selected something in your modal popup rather than just closed it, in which case you can check for arguments before doing the postback:
function OnClientClose(oWnd, args) {
var arg = args.get_argument();
if (arg) {
__doPostBack('', '');
}
}
You would of course need to set these arguments in your modal popup program e.g:
function returnToParent() {
//create the argument that will be returned to the parent page
var oArg = new Object();
oArg.customer = '<%= Session("returnedValues") %>';
var oWnd = GetRadWindow();
oWnd.close(oArg);
}
Hope this helps others.