使用 JavaScript 中的数组设置 Partylist 值

Set Partylist value using array in JavaScript

我正在尝试从一个数组中设置派对列表的值,该数组根据选定的联系人进行格式化。但是我得到了 indxIds is undefined 的异常,我尝试了很多方法来弄清楚但无法做到。以下是我正在尝试做的事情:

//arrIds is the array of guids of selected contacts

var partyList = new Array();

for (var indxIds = 0; indxIds < arrIds.length; indxIds++) {
    partyList[indxIds ] = new Object();
    partyList[indxIds].id = arrIds[indxids]; 
    partyList[indxIds].name = selectedname[indxids].Name; 
    partyList[indxIds].typename= 'contact';         
}

Xrm.Page.getAttribute("to").setValue(partyList);

我做错的地方需要你的帮助。

Javascript 区分大小写,因此 indxIdsindxids 被视为 2 个不同的变量。

您在 for 循环中定义了 indxIds,但使用 indxids(即 undefined)来索引您的 arrIdsselectedname数组。

此外,Dynamics CRM 查找需要 entityType 而不是 typename

尝试:

for (var indxIds = 0; indxIds < arrIds.length; indxIds++) {
    partyList[indxIds] = new Object();
    partyList[indxIds].id = arrIds[indxIds]; 
    partyList[indxIds].name = selectedname[indxIds].Name; 
    partyList[indxIds].entityType = 'contact';         
}

甚至更好,您可以使用对象字面量:

for (var i = 0; i < arrIds.length; i++) {
    partyList[i] = {
        id: arrIds[i], 
        name: selectedname[i].Name,
        entityType: 'contact'        
    };
}