c#如何使用 ScriptManager.RegisterStartupScript 从在 dll 内

标签: Asp.net dll C#
发布时间: 2017/2/25 3:47:07
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

在各种项目中我用下面的代码在一个窗口,从 aspx 页中打开的文档︰

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"命令,但没有窗口打开。
有人可以给我解释一下我错过了什么吗?

解决方法 1:

使用此代码片段。那么你不需要发送 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);
}
赞助商