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