TypeError:无法读取未定义的属性“ Page”

时间:2019-04-03 08:44:46

标签: javascript dynamics-crm crm dynamics-crm-2016

我正在将解决方案从CRM 8.2迁移到CRM v9。我正在尝试在CRM中检索多个记录。在CRM 8.2环境中使用时,与我在CRM v9环境中使用的相同的JavaScript代码可以正常工作。

在CRM v9中,出现以下错误

  

TypeError:无法在eval读取未定义的属性“ Page”(在eval为   (http://vtdemo/VTd365dev/WebResources/vrp_/Disposition/js/Disposition.js:13:1),   :1:20)。   (http://vtdemo/VTd365dev/WebResources/vrp_/Disposition/js/Disposition.js:13:1)   在j   (http://vtdemo/VTd365dev/WebResources/vrp_/Common/js/jquery_1.11.2.js:2:27295)   在Object.fireWith [as resolveWith]   (http://vtdemo/VTd365dev/WebResources/vrp_/Common/js/jquery_1.11.2.js:2:28108)   在Function.ready   (http://vtdemo/VTd365dev/WebResources/vrp_/Common/js/jquery_1.11.2.js:2:29942)   在HTMLDocument.J   (http://vtdemo/VTd365dev/WebResources/vrp_/Common/js/jquery_1.11.2.js:2:30308

我不知道为什么会这样。如果是这种情况,那么CRM v9中可能不再支持该功能了,那么我如何使它起作用?

我正在使用下面的代码,其中出现错误,

var userLcid = Xrm.Page.context.getUserLcid();

3 个答案:

答案 0 :(得分:2)

您不能直接调用9.1版本的Xrm.Page。请参阅官方文档here。 您将需要传递FormContext (link for reference)并替换Xrm.Page,如下所示

ExecutionContext.getFormContext 

并获取用户语言ID 9.0之前

Xrm.Page.context.getUserLcid

9.0前后的更改如下

globalContext.userSetings.languageId

答案 1 :(得分:1)

首先通过将库导入HTML Web资源中,我已经达到了预期的效果,

<script src="../../ClientGlobalContext.js.aspx" type="text/javascript"></script> 

经过研究,我发现 GetGlobalContext 函数返回在 Xrm.Page.context中找到的相同上下文对象。

所以,然后我在下面的JS中使用它,

var context = GetGlobalContext();
var userLcid= context.getUserLcid();

效果很好,我取得了成绩。

PS:谢谢大家的支持。

答案 2 :(得分:0)

我通过确保选中了将执行上下文作为第一个参数进行传输的选项来解决了该错误。

enter image description here