ClientScript.RegisterStartupScript not working

两盒软妹~` 提交于 2019-12-19 19:48:30

问题


I have searched SO & google, but I can't seem to get this to work. The code is in the codebehind click event of a "Cancel" button in my asp.net application but does not seem to close the popup window. Any ideas?

try
{
    if (btnCancel.Text == "Close")
    {
        String csName1 = "PopupScript";
        Type csType = this.GetType();

        ClientScriptManager cs = Page.ClientScript;
        if (!cs.IsClientScriptBlockRegistered(csType, csName1))
        {
            ClientScript.RegisterStartupScript(GetType(), "ClosePopup", "window.close();", true);
        }
    }
}  

Update: After postback, when I look at the source page, the only code I see related is:

//<![CDATA[
(function() {var fn = function() {$get("ToolkitScriptManager1_HiddenField").value = '';Sys.Application.remove_init(fn);};Sys.Application.add_init(fn);})();window.close();
document.getElementById('ValidationSummary1').dispose = function() {
    Array.remove(Page_ValidationSummaries, document.getElementById('ValidationSummary1'));
}

回答1:


You can use this instead

ScriptManager.RegisterStartupScript(this.Page, GetType(), "ClosePopup", "window.close();", true);

or you can also try this one

Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "ClosePopup", "window.close();", true);

Have a Good day.




回答2:


since I could not get the ClientScript to work as required, I did a workaround using the code below:

    function closeWin() {
        //If txt = 'cancel' then close;
        GetRadWindow().Close();
    }


<td align="center"><asp:Button runat="server" ID="btnClose" Text="Close" 
        OnClientClick="closeWin();return false;" onclick="btnClose_Click"/></td>


来源:https://stackoverflow.com/questions/16484978/clientscript-registerstartupscript-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!