Close window and update gridpanel in parent page

  1. #1

    Close window and update gridpanel in parent page

    Hi!
    I have problem. I created dynamic window on page "Journal.aspx"
    Window win = new Window
            {
                ID = "Journal_new",
                Height = 700,
                Width = 700,
                Title = "Create new message",
                BodyPadding = 5,
                Modal = true,
                CloseAction = CloseAction.Destroy,
                Loader = new ComponentLoader
                {
                    Url = "Journal_new.aspx",
                    Mode = LoadMode.Frame,
                    LoadMask =
                    {
                        ShowMask = true
                    }
                }
            };
            win.Render(this.Form);
    How i can close this window and refresh gridpanel in page "Journal.aspx"
  2. #2
    Hi @KalenkinAV,

    Welcome to the Ext.NET forums!

    It looks like you are colleagues:)
    http://forums.ext.net/showthread.php?60370

    I would implement it like that.

    Parent.aspx
    <%@ Page Language="C#" %>
    
    <%@ Import Namespace="System.Collections.Generic" %>
    
    <script runat="server">
        protected void Store_ReadData(object sender, StoreReadDataEventArgs e)
        {
            var s = "Seconds: " + DateTime.Now.Second;
    
            this.GridPanel1.GetStore().DataSource = new object[]
            {
                new { test = s },
                new { test = s },
                new { test = s }    
            };
        }
    
        protected void CreateWindow(object sender, DirectEventArgs e)
        {
            Window win = new Window
            {
                ID = "Window1", // 
                Title = "Window with an iframe",
                Modal = true,
                CloseAction = CloseAction.Destroy,
                Loader = new ComponentLoader
                {
                    Url = "Child.aspx",
                    Mode = LoadMode.Frame,
                    ParentRef = "parentExtNetWindow",
                    LoadMask =
                    {
                        ShowMask = true
                    }
                }
            };
    
            win.Render(this.Form);
        }
        
        [DirectMethod]
        public void CloseWindowAndRefreshGridPanel(string windowId)
        {
            X.Js.Call("App." + windowId +".hide");
            this.GridPanel1.GetStore().Reload();
        }
    </script>
    
    <!DOCTYPE html>
    
    <html>
    <head runat="server">
        <title>Ext.NET v3 Example</title>
    
        <script>
            var myFunction = function () {
    
            };
        </script>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
    
            <ext:Button runat="server" Text="Create Window" OnDirectClick="CreateWindow" />
    
            <ext:GridPanel ID="GridPanel1" runat="server">
                <Store>
                    <ext:Store runat="server" OnReadData="Store_ReadData">
                        <Model>
                            <ext:Model runat="server">
                                <Fields>
                                    <ext:ModelField Name="test" />
                                </Fields>
                            </ext:Model>
                        </Model>
                        <Proxy>
                            <ext:PageProxy>
                                <Reader>
                                    <ext:JsonReader />
                                </Reader>
                            </ext:PageProxy>
                        </Proxy>
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:Column runat="server" Text="Test" DataIndex="test" />
                    </Columns>
                </ColumnModel>
            </ext:GridPanel>
        </form>
    </body>
    </html>
    Child.aspx
    <%@ Page Language="C#" %>
    
    <script runat="server">
        protected void DoAction(object sender, DirectEventArgs e)
        {
            // Here you could do anything that is required to do on server side
    
            // This is easier to do from client side
            X.Js.Call("closeAndStuff");
        }
    </script>
    
    <!DOCTYPE html>
    <html>
    <head runat="server">
        <title>Ext.NET v3 Example</title>
    
        <script>
            var closeAndStuff = function () {
                parent.App.direct.CloseWindowAndRefreshGridPanel(parentExtNetWindow.id);
            };
        </script>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
    
            <ext:Button runat="server" Text="Click me" OnDirectClick="DoAction" />
        </form>
    </body>
    </html>
  3. #3
    Hi @Daniil
    Thanks for the answer. It works:)

Similar Threads

  1. [CLOSED] close window when its parent is not visible anymore
    By mirwais in forum 2.x Legacy Premium Help
    Replies: 4
    Last Post: Mar 01, 2013, 4:01 PM
  2. Replies: 4
    Last Post: Nov 22, 2010, 10:25 AM
  3. [CLOSED] How to close a Ext Window from server side and refresh parent
    By GmServizi in forum 1.x Legacy Premium Help
    Replies: 10
    Last Post: Apr 15, 2010, 7:56 AM
  4. Close Parent Window from Autoload iFrame
    By Tbaseflug in forum 1.x Help
    Replies: 3
    Last Post: Nov 16, 2009, 11:51 AM
  5. Replies: 1
    Last Post: Apr 01, 2009, 12:24 PM

Tags for this Thread

Posting Permissions