在 Dynamics 365开发中经常遇到 subgrid 保存后刷新主窗体或者 subgrid 刷新后刷新主窗体的需求。在圈内的文章中提供了两种手段
今天补充第三种方式
1、在主表单加一个定时任务,定时的去捞取后台数据库的数据和前台比较,看是否一致如果不一致则刷新主页面加载最新的数据,代码如下,第一行放在onload事件中
setTimeout(checkTable, 5000); function checkTable() { retrieveRecord(Xrm.Page.data.entity.getId(), 'xxSet', function (data, textStatus, XmlHttpRequest) { if (data != null && data.new_money.Value != Xrm.Page.getAttribute("new_money").getValue()) { Xrm.Page.data.entity.save(); Xrm.Page.data.refresh(); } }, null, false); setTimeout(checkTable, 5000); }
2、向subgrid的refresh事件追加一个事件来刷新主表单。这种方式优于第一种,因为前者会不停的向后台发送查询请求显然影响性能。代码如下,第一行放在onload事件中
setTimeout(SubGridRefresh, 2500); function SubGr