在我的功能上,我正在检查页面上是否有任何更改,如果有我正在保存它们。
但是,即使保存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
答案 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())