JavaScript启动得太快了.对象未加载

JavaScript Fires too fast. Objects not loaded

本文关键字:对象 加载 启动 JavaScript      更新时间:2023-09-26

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

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专家,所以我可以使用一些帮助。

Thanks in advance

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