This example explains how to Open PopUp Window In Asp.Net And Update Refresh Parent Child Values using ClientScript And RegisterStartupScript.
I am opening popup window from aspx page and updating values in parent window from child or popup window using javascript and ClientScript.RegisterStartupScript.
I've also added a PopUp.aspx page which is having two textboxes and a button to update lable values of parent page.
The textboxes in popup window are populated with Text values of lables in parent page (Default.aspx), after making changes in textbox values i'm updating values back in parent page.
<form id="form1" runat="server"> <div> First Name : <asp:Label ID="lblFirstName" runat="server" Text="amiT"> </asp:Label><br /> <br /> Last Name: <asp:Label ID="lblLastName" runat="server" Text="jaiN"> </asp:Label><br /> <br /> <asp:Button ID="btnPop" runat="server" Text="Click To Edit Values" /> </div> </form>
Write following JavaScript in Head section of page.
1: <script type="text/javascript">
2: function openPopUp()
3: {
4: var popUrl = 'PopUp.aspx?fn=' + document.getElementById('<%= lblFirstName.ClientID %>').innerHTML + '&ln=' + document.getElementById('<%= lblLastName.ClientID %>').innerHTML;
5: var name = 'popUp';
6: var appearence ='dependent=yes,menubar=no,resizable=no,'+
7: 'status=no,toolbar=no,titlebar=no,' +
8: 'left=5,top=280,width=230px,height=140px';
9: var openWindow = window.open(popUrl, name, appearence);
10: openWindow.focus();
11: }
12: </script>
In this i m getting values of lables and passing them to popuup page as querystrings
Write this code in Page_Load event of Default.aspx (parent) page
C# CODE
protected void Page_Load(object sender, EventArgs e)
{
string updateValuesScript =
@"function updateValues(popupValues)
{
document.getElementById('lblFirstName').innerHTML=popupValues[0];
document.getElementById('lblLastName').innerHTML=popupValues[1];
}";
this.ClientScript.RegisterStartupScript(Page.GetType(),
"UpdateValues", updateValuesScript.ToString(), true);
btnPop.Attributes.Add("onclick", "openPopUp('PopUp.aspx')");
}
VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim updateValuesScript As String = "function updateValues(popupValues)" & vbCr & vbLf & "{" & vbCr & vbLf & " document.getElementById('lblFirstName').innerHTML=popupValues[0];" & vbCr & vbLf & " document.getElementById('lblLastName').innerHTML=popupValues[1];" & vbCr & vbLf & "}"
Me.ClientScript.RegisterStartupScript(Page.[GetType](), "UpdateValues", updateValuesScript.ToString(), True)
btnPop.Attributes.Add("onclick", "openPopUp('PopUp.aspx')")
End Sub
HTML SOURCE OF PopUp.aspx(child) page
<form id="form1" runat="server"> <div> First Name : <asp:TextBox ID="txtPopFName" runat="server" Width="113px"> </asp:TextBox><br /> <br /> Last Name:<asp:TextBox ID="txtPopLName" runat="server" Width="109px"> </asp:TextBox><br /> <br /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /></div> </form>
C# CODE PopUp.aspx
protected void Page_Load(object sender, EventArgs e)
{
string updateParentScript =
@"function updateParentWindow()
{
var fName=document.getElementById('txtPopFName').value;
var lName=document.getElementById('txtPopLName').value;
var arrayValues= new Array(fName,lName);
window.opener.updateValues(arrayValues);
window.close();
}";
this.ClientScript.RegisterStartupScript(this.GetType(),
"UpdateParentWindow", updateParentScript, true);
if (!IsPostBack)
{
txtPopFName.Text = Request["fn"];
txtPopLName.Text = Request["ln"];
}
Button1.Attributes.Add("onclick", "updateParentWindow()");
}
VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim updateParentScript As String = "function updateParentWindow()" & vbCr & vbLf & " { " & vbCr & vbLf & " var fName=document.getElementById('txtPopFName').value; " & vbCr & vbLf & " var lName=document.getElementById('txtPopLName').value; " & vbCr & vbLf & " var arrayValues= new Array(fName,lName);" & vbCr & vbLf & " window.opener.updateValues(arrayValues); " & vbCr & vbLf & " window.close(); " & vbCr & vbLf & " }"
Me.ClientScript.RegisterStartupScript(Me.[GetType](), "UpdateParentWindow", updateParentScript, True)
If Not IsPostBack Then
txtPopFName.Text = Request("fn")
txtPopLName.Text = Request("ln")
End If
Button1.Attributes.Add("onclick", "updateParentWindow()")
End Sub
Hope this helps
Download sample code attached





