Crm 2011 - 手动保存后页面仍然“脏”

时间:2014-08-24 08:52:44

标签: javascript dynamics-crm-2011 dynamics-crm

在我的功能上,我正在检查页面上是否有任何更改,如果有我正在保存它们。 但是,即使保存Xrm.Page.data.entity.getIsDirty()后仍然是true

  var isPageDirty = Xrm.Page.data.entity.getIsDirty(); //true
  if (isPageDirty) { //Save if there were any changes
      Xrm.Page.data.entity.save();
  }
  isPageDirty = Xrm.Page.data.entity.getIsDirty(); //still true!

为什么会这样?保存后isPageDirty不应更改为false

2 个答案:

答案 0 :(得分:3)

可能还有一些脚本在该表单上设置了一个值。您可以通过简单地循环遍历属性来检查导致此问题的字段/字段,例如:

function showDirtyAttributes(){
    var names = "";
    Xrm.Page.data.entity.attributes.forEach(function (attribute, index) {
        if (attribute.getIsDirty()) {
            names += attribute.getName() + ";";
        }
    });
    alert(names);
}

取自here

答案 1 :(得分:2)

判断哪些字段是脏的最短方法是提醒实体数据xml,即

alert(Xrm.Page.data.entity.getDataXml())