2017-01-03 72 views
0

使用ScriptManager.RegisterStartupScript从在不同的项目中,我用下面的代码在一个窗口中打开文档,从一个ASPX页面:了如何在一个dll

public void viewDocument(string strLink, System.Web.UI.Control ctrlPanel) 
{ 
    string strScript; 
    strScript = "var w=window.open('" + strLink + "','zz');window.focus();"; 
    ScriptManager.RegisterStartupScript(ctrlPanel, ctrlPanel.GetType(), "ShowInfo", strScript, true); 
} 

和一切工作正常。
我决定创建一个工具箱,即一个只包含可在许多项目中使用的函数的项目。该工具箱现在是一个由项目引用的dll。
我的问题:我的viewDocument函数不再工作。我没有任何JavaScript错误,没有。在调试模式下,我可以看到它通过“ScriptManager.RegisterStartupScript”命令运行,但没有打开窗口。
有人可以解释我错过了什么吗?

+0

我还没玩过很长时间,但如果我记得不错,我认为你的网页应该有一个ScriptManager控件。你确定是这样吗? – JuanR

+0

是的,我在MasterPage中有一个。 –

+0

你有没有试过调用ScriptManager.GetCurrent()?你得到了什么?这可能会帮助你弄清楚发生了什么。 – JuanR

回答

0

使用此片段。那么你不需要发送System.Web.UI.Control作为变量。

public void viewDocument(string strLink) 
{ 
    Page page = HttpContext.Current.CurrentHandler as Page; 

    string strScript = "var w=window.open('" + strLink + "','zz');window.focus();"; 
    ScriptManager.RegisterStartupScript(page, page.GetType(), "ShowInfo", strScript, true); 
} 
+0

这解决了我的问题!谢谢你,感谢胡安! –