【问题标题】:How to call a client-side javascript function after closing a radwindow关闭 radwindow 后如何调用客户端 javascript 函数
【发布时间】:2016-08-05 05:48:38
【问题描述】:

在 aspx page1 我有一个按钮。我单击该按钮,它会打开一个在 aspx page2 中实现的 radwindow。在 radwindow 中,我输入一些数据并单击保存按钮。它调用服务器端方法,然后关闭 radwindow。关闭 radwindow 后,它应该触发 page1 的方法。如何做到这一点?

从 page1 打开 radwindow 的代码:

      function btnAddNewImage_click() {
        debugger;
        var hdn_PatientId = document.getElementById("<%=hdn_PatientId.ClientID %>").value;
        var selectedEncounterId = document.getElementById("<%=hdn_EncounterId.ClientID %>").value;
        var oWnd = radopen("../Admin/Encounter/PopUps/UploadImages.aspx?EncounterId=" + selectedEncounterId + "&PatientId=" + hdn_PatientId, "rwDialog");
        oWnd.SetTitle("Upload Image");
        oWnd.SetSize(600, 350);
        oWnd.Center();
        //oWnd.add_close("refreshGrid");
        oWnd.OnClientClose = "refreshGrid"; // Not working
        return false;

    }

radwindow 关闭后触发的函数:

function refreshGrid(sender, eventArgs) {
        debugger;
        alert("in refreshgrid");
        var selectedEncounterId = document.getElementById("<%=hdn_EncounterId.ClientID %>").value;
        loadImagesProgressNotes(selectedEncounterId, "Current");
    }

在page2中关闭radwindow的代码

RadScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "javascript:returnToParent();", true);     
function returnToParent() {
            debugger;
            //get a reference to the current RadWindow               
            var oWnd = GetRadWindow();                
            oWnd.close();


        }

【问题讨论】:

    标签: javascript asp.net telerik


    【解决方案1】:

    我试过测试你的代码,但我不能。我在示例中看到的是 radwindow 是以这种方式声明的,而不是您尝试的动态声明。

    <telerik:RadWindow RenderMode="Lightweight" runat="server" 
      ID="RadWindow1" OnClientClose="OnClientCloseHandler"
      NavigateUrl="dialog-page.aspx" VisibleOnPageLoad="true">   
    </telerik:RadWindow>
    

    我建议您查阅文档,那里有一些示例。

    OnClientClose 的演示:

    https://demos.telerik.com/aspnet-ajax/window/examples/clientsideevents/defaultcs.aspx

    OnClientClose 的文档:

    http://docs.telerik.com/devtools/aspnet-ajax/controls/window/client-side-programming/events/onclientclose

    【讨论】:

      【解决方案2】:

      使用 RadWindow 的客户端 API 附加 OnClientClose 处理程序:http://docs.telerik.com/devtools/aspnet-ajax/controls/window/client-side-programming/radwindow-object#methods-for-modifying-client-side-event-handlers-dynamically

      var oWnd = radopen();
      oWnd.add_close(refreshGrid);
      

      请注意,refreshGrid 函数必须与打开的 RadWindow 位于同一上下文(页面)中。如果不是,请查看以下代码库项目以了解如何将它们绑定在一起:http://www.telerik.com/support/code-library/creating-parent-child-relationships-between-radwindows-and-passing-data-between-them

      【讨论】:

        猜你喜欢
        • 2011-11-20
        • 1970-01-01
        • 2010-09-25
        • 1970-01-01
        • 1970-01-01
        • 2017-08-30
        • 2019-05-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多