RadWindow not closing via button

6 posts, 0 answers
  1. John
    John avatar
    19 posts
    Member since:
    Jan 2011

    Posted 07 Mar 2011 Link to this post

    Hi

    I am following the following example to display an aspx page in popup radwindow.

    http://demos.telerik.com/aspnet-ajax/window/examples/dialogreturnvalue/defaultcs.aspx

    My code to display radwindow is given below at the end and is the equivalent of Dialog1.aspx in the above example. The code works fine and the content of the below aspx page opens fine in radwindow. Problem is when I click on the ‘I Accept’ button to close the radwindow and return the values to calling page (not included here) the radwindow closes but then reappears immediately. In other words the radwindow cannot be closed permanently using the ‘I Accept’ button. What is the problem and how can I make it work like the example in above link where pressing Submit button in dialog1.aspx closes the radwindow and returns values to calling form?

    Many Thanks

    Regards

    <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
      
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ViewDocument.aspx.cs" Inherits="SitefinityWebApp.Widgets.TestWidgets.ViewDocument" %>
      
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <head runat="server">
        <title></title>
    </head>
    <body style="margin: 0px" onload="AdjustRadWidow();">
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <telerik:RadFormDecorator ID="RadFormDecorator1" DecoratedControls="All" runat="server"
            Skin="Sunset" />
        <script type="text/javascript">
            function GetRadWindow() {
                var oWindow = null;
                if (window.radWindow) oWindow = window.radWindow;
                else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
                return oWindow;
            }
      
            function openWin2() {
                var parentPage = GetRadWindow().BrowserWindow;
                var parentRadWindowManager = parentPage.GetRadWindowManager();
                var oWnd2 = parentRadWindowManager.open("Dialog2.aspx", "RadWindow2");
                window.setTimeout(function () {
                    oWnd2.setActive(true);
                }, 0);
            }
      
            function populateCityName(arg) {
                var cityName = document.getElementById("cityName");
                cityName.value = arg;
            }
      
            function AdjustRadWidow() {
                var oWindow = GetRadWindow();
                setTimeout(function () { oWindow.autoSize(true); if ($telerik.isChrome || $telerik.isSafari) ChromeSafariFix(oWindow); }, 500);
            }
      
            //fix for Chrome/Safari due to absolute positioned popup not counted as part of the content page layout
            function ChromeSafariFix(oWindow) {
                var iframe = oWindow.get_contentFrame();
                var body = iframe.contentWindow.document.body;
      
                setTimeout(function () {
                    var height = body.scrollHeight;
                    var width = body.scrollWidth;
      
                    var iframeBounds = $telerik.getBounds(iframe);
                    var heightDelta = height - iframeBounds.height;
                    var widthDelta = width - iframeBounds.width;
      
                    if (heightDelta > 0) oWindow.set_height(oWindow.get_height() + heightDelta);
                    if (widthDelta > 0) oWindow.set_width(oWindow.get_width() + widthDelta);
                    oWindow.center();
      
                }, 310);
            }
      
            function returnToParent() {
                //create the argument that will be returned to the parent page
                var oArg = new Object();
      
      
                oArg.cityName = "London";
      
                oArg.selDate = toLocaleString();
      
                //get a reference to the current RadWindow
                var oWnd = GetRadWindow();
      
                //Close the RadWindow and send the argument to the parent page
                if (oArg.selDate && oArg.cityName) {
                    oWnd.close(oArg);
                }
                else {
                    alert("Please fill both fields");
                }
            }
        </script>
        <div>
            <asp:Panel ID="Panel1" runat="server" Height="100%" Width="100%">
                <table style="width: 100%; height: 100%;">
                    <tr>
                        <td colspan="3">
                               
                            <asp:Literal ID="Literal1" runat="server"></asp:Literal>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="3">
                                 
                        </td>
                    </tr>
                    <tr>
                        <td align="center" width="40%">
                               
                        </td>
                        <td align="center" width="10%" style="width: 20%">
                            <button title="I Accept" id="close" onclick="returnToParent(); return true;">
                                I Accept</button>
                        </td>
                    </tr>
      
                </table>
            </asp:Panel>
        </div>
        </form>
    </body>
    </html>

  2. John
    John avatar
    19 posts
    Member since:
    Jan 2011

    Posted 07 Mar 2011 Link to this post

    The second issue is that the radwindow that comes up has its left border chopped off (image radwindow1.jpg) and in general does not have as elegant a border as in the sample (radwindow2.jpg.)

    Thanks

    Regards

  3. Georgi Tunev
    Admin
    Georgi Tunev avatar
    7207 posts

    Posted 10 Mar 2011 Link to this post

    Hi John,

    The code that you posted looks OK so at this point I assume that the problem might be in the parent page. Do you make a postback in the parent after you close the RadWindow? If so, try setting EnableViewState to false and see if it helps. If it doesn't, it will be best to open a support ticket and to send us a sample project that isolates the problem so we can investigate further.

    Kind regards,
    Georgi Tunev
    the Telerik team
    Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
  4. Satya
    Satya avatar
    3 posts
    Member since:
    Mar 2012

    Posted 08 Mar 2012 Link to this post

    Is this Issue has been resolved? I am only getting this issue when I host my user control with in another user control otherwise it works perfectly fine.

    Thanks,
    Satya
  5. Marin Bratanov
    Admin
    Marin Bratanov avatar
    4529 posts

    Posted 09 Mar 2012 Link to this post

    Hello Satya,

    We have not received further information regarding this thread and I cannot confirm how/if the original poster resolved the problem. It is possible that my colleague's suggestion to remove the viewstate helped. Please try it as well, especially if you are opening the RadWindow from the server.

    You should also take a look at your JS code - are calling somewhere methods like center(), maximize(), moveTo() on this RadWindow after it is closed? This should not be done as they also modify its visibility.


    Kind regards,
    Marin
    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 now.
  6. Satya
    Satya avatar
    3 posts
    Member since:
    Mar 2012

    Posted 09 Mar 2012 Link to this post

    Hi Marin,
    Thank you for your solution. I made changes as per above suggestion in link you have provided and removed the center() and it  started working.

    Thanks,
    Satya
Back to Top