Fermeture RadWindow en invoquant javascript à partir du serveur

J'ai une commande qui ressemble à ceci:

<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>

Page:

<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>

Cela fonctionne comme prévu. Mon RadWindow est supprimé et mon contrôle de grille actualise au moment de frapper, soit l'annuler ou de boutons de soumission. Le problème est que la base de données n'a pas fini de faire son travail en ce moment pour que la grille d'actualisation ne révèle pas les changements. J'ai essayé de changer ma mise en œuvre de page ressemble à ceci:

Page:

<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 Derrière appelle éventuellement après travail de base de données complète:

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

J'ai touché mon point d'arrêt dans le closeWindow fonction, mais il n'a pas le même comportement (la fenêtre ne fait pas les fermer). J'ai essayé différentes versions comme:

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

en vain. Ce qui me manque?

OriginalL'auteur kmkemp | 2011-10-13