Dynamics crm 2011 尝试在CRM2011中运行报告,获取';Sys未定义';

Dynamics crm 2011 尝试在CRM2011中运行报告,获取';Sys未定义';,dynamics-crm-2011,Dynamics Crm 2011,我在CRM2011中有一个报告,它是一个上载的RDL文件。当我尝试运行它时,我得到错误“Sys未定义”。当我查看Viewer.aspx的调试器时,它显示 Sys.WebForms.PageRequestManager._initialize ('scriptmanager','form1', ['freeportViewer$ReportViewer','', 'freeportViewer$DocMap','', 'freeportViewer$ct109$ReportArea',''],[]

我在CRM2011中有一个报告,它是一个上载的RDL文件。当我尝试运行它时,我得到错误“Sys未定义”。当我查看Viewer.aspx的调试器时,它显示

Sys.WebForms.PageRequestManager._initialize
('scriptmanager','form1',
['freeportViewer$ReportViewer','',
'freeportViewer$DocMap','',
'freeportViewer$ct109$ReportArea',''],[], 
['freeportViewer$ct109$ReportControl$ct100',''],1000,
'');
x Sys未定义


知道这里出了什么问题吗?

原因是脚本还没有加载

当浏览器运行该代码时,它希望在某处定义Sys.WebForms.PageRequestManager。某个地方恰好位于从脚本标记加载的其他脚本中,这些脚本标记如下所示:

由于您使用的是MSCRM report Viewer.aspx,我怀疑此aspx文件已被编辑,或者可能是浏览器问题。保留原件的副本,然后尝试以下操作:

如果浏览器无法加载这些脚本,脚本引擎将无法找到Sys、Sys.WebForms、Sys.WebFormsPageRequestManager的定义,从而导致错误

  • 您可以尝试将asp:ScriptManager移动到母版页内的标记和aspx页内的块之后
  • 如果您使用ASP.NET AJAX ScriptManager控件向页面添加其他脚本,您也可以避免类似问题。ScriptManager将确保在呈现UI之前呈现脚本,这将强制浏览器在呈现UI之前加载脚本

  • ScriptManager上有一个属性控制此行为(LoadScriptsBeforeUI),因此如果将其设置为false,则需要采用一些防御编程:
  • 比如:

    function hasloaded() 
    { 
      if(typeOf(Sys) == 'undefined'){ 
        alert('Please try again. The page hasn't finished loading. try refreshing the page.'); 
         return false; 
      } else { 
         return true; 
      } 
    } 
    
    if(hasLoaded()){ 
      //work with Sys. 
    } 
    
  • 我们可以通过在webconfig文件中添加一些代码来解决此错误。。。代码如下
  • 
    

    将此代码放入