基本上,我有一个母版页和数百个内容页。每个内容页都包含ToolKitScriptManager。现在,我想在母版页上添加ScriptManager,当我尝试执行时,错误显示"Only one instance of a ScriptManager can be added to the page."。
我知道我必须注释/删除每个内容页面上的每个ToolKitScriptManager行。但出于某种原因,我不能仅仅为了删除这些ToolkitScriptManager代码而编辑数百个内容页。
我想问的是,有什么解决方案吗?这样我就可以从母版页的代码后面以编程方式禁用ToolkitScriptManager (在内容页上),这样我就不必编辑我的数百个内容页了?
编辑:
从这个答案的问题:How to use AJAX in master page when content pages have ScriptManager?,有三种方式,他可以提供。最后一种方法是不可能的,因为我仍然需要编辑内容页面。然而,我不明白他写的第一和第二条路。如果我必须用以下内容包装内容页的ToolKitScriptManager:
<asp:ContentPlaceHolder ID="PlaceHolderID" runat="server" >>
</asp:ContentPlaceHolder>然后母版页的ScriptManager将覆盖内容页的ToolKitScriptManager。如果我错了就纠正我。如果我是对的,第一/第二种方式也是不可能的,因为仍然需要编辑内容页面,对吗?
发布于 2014-04-13 12:03:43
在母版页中,处理脚本管理器在Init上的操作,并在每次加载母版页脚本管理器时从内容页中删除工具包脚本管理器:
MasterPage ASPX:
<asp:ScriptManager ID="ScriptManager1" runat="server" OnInit="ScriptManager1_Init"></asp:ScriptManager>MasterPage代码背后:
protected void ScriptManager1_Init(object sender, EventArgs e)
{
    try
    {
        foreach (Control _ctrl in ContentPlaceHolder1.Controls)
        {
            if (_ctrl.GetType() == typeof(AjaxControlToolkit.ToolkitScriptManager))
            {
                ContentPlaceHolder1.Controls.Remove(_ctrl);
                break;
            };
        }
    }
    catch (Exception ex)
    {
    }
}https://stackoverflow.com/questions/23033276
复制相似问题