JavaScript 无法解释的故障 CRM 2013

JavaScript unexplained failure CRM 2013

我将以下内容作为库应用于 CRM 2013 表单

    function calcServicePriceTotal() {
alert("Start");//----------HERE
if (document.getElementById("Services")) {
        alert("InsideIf");  //----------HERE
    var grid = document.getElementById("Services").control;
        alert("ThisFar?");//----------HERE
    var ids = grid.Control.get_allRecordIds()
        alert("ThisFar2?");//----------HERE
    for (i = 0; i < ids.length; i++) {
            alert("InsideFor");//----------HERE
       var cellValue = grid.control.getCellValue('iss_salesprice', ids[i]);
       var number = Number(cellValue.replace(/[^0-9\.]+/g, ""));
       sum = sum + number;
   }
   Xrm.Page.data.entity.attributes.get("ava_tempgrossvalue").setValue(sum);
   alert("Done");//----------HERE
}
else {
    alert("Else");//----------HERE
    setTimeout("calcServicePriceTotal();", 2500);
}
}

出于某种原因,我走到了 alert("ThisFar?") 行,但没有其他任何事情发生。

这是否意味着 var ids = grid.Control.get_allRecordIds() 有问题?我不知道为什么我至少没有看到 "ThisFar2"。

谁能看出明显的东西?

    function calcServicePriceTotal() {
    if (document.getElementById("Services")) {
        var grid = document.getElementById("Services").control;
        var ids = grid.get_allRecordIds()
        var sum = 0
        for (i = 0; i < ids.length; i++) {
           var cellValue = grid.getCellValue('iss_salesprice', ids[i]);
           var number = Number(cellValue.replace(/\D/g, ''));
           number = number/100;
           sum = sum + number;
       }
       Xrm.Page.data.entity.attributes.get("iss_value").setValue(sum);
    }
    else {
        setTimeout("calcServicePriceTotal();", 1500);
    }
}

最终工作解决方案