0
我正在使用包含ScriptManager的MasterPages的舊版Web應用程序。我需要添加利用ToolScriptManager的內容頁面,因此我試圖以編程方式查找並用新版本替換舊控件。當我瀏覽代碼時,在刪除ScriptManager之後,它仍然存在,即使在回發之後。我嘗試了許多不同的方法,但我概述了下面的一般想法。在此先感謝您的任何建議。如何以編程方式將MasterManager替換爲MasterPage上的ToolkitScriptManager
MasterPage.master包含:
<asp:scriptmanager id="ScriptManagerOld" runat="server"></asp:scriptmanager>
MasterPage.master.cs包含:
public ScriptManager MasterScriptManager
{
get{return ScriptManagerOld;}
}
ContentPage.aspx.cs包含:
protected void Page_Load(object sender, EventArgs e)
{
ReplaceScriptManager();
}
private void ReplaceScriptManager()
{
try
{
Page page = this.Page;
//remove any instances of non-toolkit script manager
// attempt 1
if (Master.MasterScriptManager != null)
{
ScriptManager smngr = Master.MasterScriptManager;
page.Controls.Remove(smngr);
smngr.Dispose();
}
// attempt 2
if (Master.MasterScriptManager != null)
{
ScriptManager smngr = Master.MasterScriptManager;
page.Controls.Remove(smngr);
page.Controls.Remove(smngr.Parent);
smngr.Dispose();
}
// attempt 3
if (ScriptManager.GetCurrent(page) != null)
{
ScriptManager smngr = ScriptManager.GetCurrent(page);
page.Controls.Remove(smngr);
smngr.Dispose();
}
// Add new ctrl
ToolkitScriptManager scriptMngr = new ToolkitScriptManager();
scriptMngr.ID = "ToolkitScriptManager";
scriptMngr.EnablePageMethods = true;
scriptMngr.CombineScripts = false;
// Exception on next line... cannot add two instances of scriptmanager
page.Page.Form.Controls.Add(scriptMngr);
}
catch (Exception ex)
{
throw (ex);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
ReplaceScriptManager();
}
感謝Dalorzo。這肯定會工作... prblem是我需要以編程方式執行它,因爲在deplyment期間,不知何故老式ScripManager被注入(一個MOSS 2007應用程序),我無法弄清楚如何防止這一點,所以我們試圖做它以編程方式。 – Bengal