5

我正在尝试使用更新面板内的 ScriptManager.RegisterStartupScript 在 gridview 内的链接按钮的单击事件上在新选项卡中打开一个文件,但它不起作用。代码如下:

       filename = Server.UrlEncode(filename);          
       string js = "<script>window.open('ViewReports.aspx?filename=" + Server.UrlEncode(filename) + "', '_newtab');</script>";           
       ScriptManager.RegisterStartupScript(UpdatePanel1,UpdatePanel1.GetType(),"Pop up",js,true);

这也不起作用:

        ScriptManager.RegisterStartupScript(Page, Page.GetType(), Guid.NewGuid().ToString(), js, true);

当我在更新面板之外使用以下代码时,它可以工作:

         Type cstype = this.GetType();

        ClientScriptManager cs = Page.ClientScript;
        cs.RegisterStartupScript(cstype, "dateSrpt", "<script>window.open('ViewReports.aspx?filename=" + Server.UrlEncode(filename) + "', '_newtab');</script>");
4

1 回答 1

9

您的内联 javascript 有问题。它不适用于内联 javascript。当我将它作为单独的javascript函数分离到aspx页面并在Registerstartupscript中调用该函数时,它起作用了。

Javascript

function OpenPopup() {            
        window.open('PulseUserManagement.aspx', null, 'height=500, width=1100, status=no,      resizable=no, scrollbars=yes, toolbar=no,location=no, menubar=no');
    }

客户服务代码

ScriptManager.RegisterStartupScript(updatepanel1, updatepanel1.GetType(), "Pop up", "OpenPopup();", true);

请尝试这样,它的工作原理。

于 2013-07-12T10:09:05.110 回答