微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过从服务器调用javascript来关闭RadWindow

我有一个看起来像这样的控件:

<telerik:RadCodeBlock runat="server">
    <script type="text/javascript">
        function refresh() {
            window.$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("RebindRecommendations");
        }
    </script>
</telerik:RadCodeBlock>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="AjaxRequest">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="NameOfGrid" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>
<telerik:radwindowManager ID="radwindowManager1" runat="server">
    <Windows>
        <telerik:radwindow ID="radwindow1" runat="server" NavigateUrl="UrlOfPage" OnClientClose="refresh"></telerik:radwindow>
    </Windows>
</telerik:radwindowManager>

页:

<script type="text/javascript">
    function closeWindow() {
        self.close();
        return false;
    }
</script>
<!-- form fields here -->
<telerik:RadButton runat="server" ID="_cancel" Text="Cancel" OnClientClick="closeWindow"></telerik:RadButton>
<telerik:RadButton runat="server" ID="_submit" Text="Submit" OnClientClick="closeWindow" OnClick="DoSomeDataBaseStuff"></telerik:RadButton>

这按预期工作.我的radwindow删除,我的控件的网格在点击取消或提交按钮时刷新.问题是数据库到那时还没有完成其工作,因此网格刷新不会显示更改.我试图将我的页面实现切换为如下所示:

页:

<script type="text/javascript">
    function closeWindow() {
        self.close();
        return false;
    }
</script>
<!-- form fields here -->
<telerik:RadButton runat="server" ID="_cancel" Text="Cancel" OnClick="CallJavaScriptToKillWindow"></telerik:RadButton>
<telerik:RadButton runat="server" ID="_submit" Text="Submit" OnClick="DoSomeDataBaseStuffAndThenCallJavaScriptToKillWindow"></telerik:RadButton>

Code Behind最终在数据库工作完成后调用它:

ClientScript.RegisterStartupScript(GetType(), "Key", "closeWindow();", true);

我在closeWindow函数中点击了断点,但它没有相同的行为(窗口实际上没有关闭).我尝试了各种迭代,如:

ClientScript.RegisterStartupScript(GetType(), "Key", "$(document).ready(function() {return closeWindow();});", true);

无济于事.我错过了什么?

解决方法:

什么是’自我’?你不是说’这个’吗?

您是否尝试从窗口内部或启动窗口的页面关闭radwindow

从窗口内部,我通常这样做:

    function Getradwindow()
    {
        var oWindow = null;
        if (window.radwindow)
            oWindow = window.radwindow;
        else if (window.frameElement.radwindow)
            oWindow = window.frameElement.radwindow;
        return oWindow;
    }

    function Close()
    {
        var oWindow = Getradwindow();
        oWindow.argument = null;
        oWindow.close();
        return false;
    }

另外,我使用ScriptManager.RegisterStartupScript而不是ClientScript.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐