2

hi I have one parent page which opens a pop up window, and user makes some changes on child pop up page then clicks a save button. When the user clicks the save button, I want to doPostBack to the parent page so that the changes made in the pop up window can be seen in parent window.

Question : How can I achive the above scenario?

I want to write the script code in aspx.cs file, I tried

string script = "";
script = "<script>window.opener.__doPostBack('UpdatePanel1', '')</script>";
ScriptManager.RegisterClientScriptBlock(Literal1, typeof(Literal), "yenile", script, true);

but this did not do anything, no errors just nothing.

I am new to JavaScript, need help with all steps.

1
  • You don't need the script tags, there's a boolean parameter to include them when you call ScriptManager.RegisterClientScriptBlock(...) Commented May 27, 2011 at 17:19

4 Answers 4

2

The parent page:

<asp:UpdatePanel runat="server">
    <ContentTemplate>
        <div>
            <asp:Literal runat="server" ID="ChildWindowResult" />
        </div>
        <hr />
        <input type="button" value="Open Dialog" onclick="window.open('MyDialog.aspx', 'Dialog');" />
        <asp:Button ID="HiddenButtonForChildPostback"  runat="server"
            OnClick="OnChildPostbackOccured" style="display: none;" />
        <asp:HiddenField runat="server" ID="PopupWindowResult"/>
    </ContentTemplate>
</asp:UpdatePanel>

The MyDialog page:

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
    function postData() {
        var resultField = $("input[type='hidden'][id$='PopupWindowResult']", window.opener.document);
        var parentPosDataButton = $("[id$='HiddenButtonForChildPostback']", window.opener.document);

        resultField.val($("#<%= SomeValueHiddenField.ClientID  %>").val());
        parentPosDataButton.click();
    }
</script>

<asp:TextBox runat="server" ID="SomeValueHiddenField" />
<asp:Button runat="server" OnClick="PostData" Text="Click Me" />

protected void PostData(object sender, EventArgs e)
{
   SomeValueHiddenField.Value = DateTime.Now.ToString();
   ClientScript.RegisterStartupScript(this.GetType(), "PostData", "postData();", true);
}

But I believe that it would be much better to utilize here some pop-up controls like PopUpExtender from the AjaxControlToolkit library or dialog from the jQuery-UI.

Sign up to request clarification or add additional context in comments.

Comments

1

You probably need to use ClientID:

string script = "";
script = "<script>window.opener.__doPostBack('" + UpdatePanel1.ClientID + "', '')</script>";
ScriptManager.RegisterClientScriptBlock(Literal1, typeof(Literal), "yenile", script, true);

6 Comments

Well ... to be honest, I didn't read the whole question, I just saw your __doPostBack and in ASP.NET it mangles the ID for runat="server" controls, so you always have use the full ClientID in __doPostBack.
Why don't you just do UpdatePanel1.update(); from the code-behind in the pop-up?
Scott I think you are missing something, I am trying to do postback to Parent page's updatepanel in the child page(pop up page).In addition, I will try that thanks.
You need to use UniqueID, not ClientID, for the control id in __do PostBack.
@Ray thanks Mr.Ray, I must admit I am a noob when it comes to JavaScript.
|
1

The last parameter is to whether include script tag or not

So, if you do

RegisterClientScriptBlock(page,type, "<script>foo();</script>", true);

You will end up with:

"<script><script>foo();</script></script>"

So, change your last parameter to false, or better yet, remove the tags in the string

Comments

0

Review the following suggested solution:

http://livshitz.wordpress.com/2011/06/12/use-popup-to-postbackupdate-its-parentopener-without-losing-viewstate-values-and-close/#more-16

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.