2017-01-03 71 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

這解決了我的問題!謝謝你,感謝胡安! –