JavaScript 开火太快了。未加载对象

JavaScript Fires too fast. Objects not loaded

我的一个表单 OnLoad 事件中有以下 JavaScript 运行 :-

function calcServicePriceTotal() {

  var grid = document.getElementById('ProjectServicesGrid');
  var ids = grid.control.get_allRecordIds();
  var sum = 0.00;
  var cellValue;

  for (i = 0; i < ids.length; i++) {

    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);
}

不幸的是,我收到以下错误:-

"Error:'subGridOnload' is undefined"

我相信脚本在对象加载所需时间之前就已触发,那么我该怎么做才能减慢函数速度?一定有办法克服这个问题,但我还不是 JavaScript 专家,所以我需要一些帮助。

提前致谢

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();", 500);
    }
}