我是CRM的新手。 我只需要在页面的OnLoad事件上显示一个JavaScript警报消息:“ Welcome'Account Name'”。 这是我的简单代码:
function welcomeAlert()
{
var userName = Xrm.Page.getAttribute("name").getValue();
if(userName !== null)
{
alert("Welcome " + userName + "!");
}
}
但是我在onLoad上收到错误消息:TypeError:在welcomeAlert处无法读取null的属性'getValue'。
如果我的代码看起来像下面的代码,则一切正常。
function welcomeAlert()
{
alert("Welcome ");
}
有人可以帮忙吗?也许属性名称不正确。但是我不知道如何检查。
答案 0 :(得分:0)
根据您的CRM版本,Xrm.Page
可能已被弃用。请参阅deprecation page
执行此操作的正确方法是使用executionContext
对象,该对象可以由CRM传递给您的方法。 Microsoft提供了一个有关如何进行此操作的示例here,但步骤如下:
function welcomeAlert(executionContext)
executionContext
来检索formContext
:例如var formContext = executionContext.getFormContext()
formContext
代替Xrm.Page
:例如var userName = formContext.getAttribute("name").getValue();
将它们放在一起,您的方法应如下所示:
function welcomeAlert(executionContext)
{
var formContext = executionContext.getFormContext();
var userName = formContext.getAttribute("name").getValue();
if(userName !== null)
{
alert("Welcome " + userName + "!");
}
}
答案 1 :(得分:0)
name
,以确保其格式new_name
header_name
if(formContext.getAttribute("name") != null
之前像getValue()
一样进行验证答案 2 :(得分:0)
我解决了我的问题!
我在docs.microsoft上阅读了此内容,因此我认为“帐户名”的属性为“名称”。 var nameValue = Xrm.Page.getAttribute("name").getValue();
将“帐户名称”字段的值分配给nameValue变量。
“帐户名”的权限属性为“ parentcustomerid”。该代码对我有用。
function welcomeAlert()
{
var userName = Xrm.Page.getAttribute("parentcustomerid").getValue()[0].name;
if(userName !== null)
{
alert("Welcome " + userName + "!");
}
}
谢谢大家的回复。