编程语言
首页 > 编程语言> > c# – ScriptManager.RegisterClientScriptInclude之后的Javascript对象“未定义”错误

c# – ScriptManager.RegisterClientScriptInclude之后的Javascript对象“未定义”错误

作者:互联网

我有一个外部js文件,基本上是一个js对象.我正在使用ScriptManager.RegisterClientScriptInclude方法在页面上包含该文件,之后我使用ScriptManager.RegisterClientScriptBlock方法来调用js对象的方法,但是得到了’DynamicLoadingPanel未定义’的js错误.我知道方法调用在aspx页面中有效时会起作用,但我认为我在ScriptManager注册脚本块时遇到错误原因.我目前在Page_Load事件中有Registers,下面是我的代码.有人可以帮我理解这里发生了什么.谢谢.

Page_Load事件

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.ClientScript.IsClientScriptIncludeRegistered("DynamicLoadingPanel"))
        {
            ScriptManager.RegisterClientScriptInclude(Page, typeof(Page), "DynamicLoadingPanel", "~/dynamicLoadingPanel.js");
            ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "set_LoadingPanelID", "DynamicLoadingPanel.set_loadingPanelID('modalLayer');", true);
        }
    }

解决方法:

经过几次试验和错误后,我终于找到了包含外部js文件的正确方法.因此,对于遇到这个问题的所有人,我希望这可以为您节省几个令人沮丧的时间.

要包含文件,您必须获取当前ScriptManager的对象,并将该文件添加到Scripts集合中.以下是一个例子.

ScriptManager sm = ScriptManager.GetCurrent(Page);
ScriptReference sr = new ScriptReference("~/scripts/dynamicLoadingPanel.js");
if (!sm.Scripts.Contains(sr))
    sm.Scripts.Add(sr);

标签:scriptmanager,javascript,c-2
来源: https://codeday.me/bug/20191008/1872315.html