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

问题描述 投票:1回答:2

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

在CRM v9中,我遇到以下错误

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

我不知道为什么会这样。可能这个东西在CRM v9中不再受支持了,如果是这样的话我怎么能让它工作?

我正在使用下面的代码,错误来了,

var userLcid = Xrm.Page.context.getUserLcid();
javascript dynamics-crm crm dynamics-crm-2016
2个回答
2
投票

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

ExecutionContext.getFormContext 

并在9.0之前获取用户语言ID

Xrm.Page.context.getUserLcid

on和After 9.0更改如下

globalContext.userSetings.languageId

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:谢谢大家的支持。

© www.soinside.com 2019 - 2024. All rights reserved.