在dyanmic中并没有对应的api去控制子网格更新数据刷新主页面数据的功能!所以这个功能需要自己写!我想了一下面对这种问题,只能做一个伪异步刷新效果!
第一步:子网格增删改,一定是更新了主页面的某些数据,才需要去做刷新数据操作的!这种的话在子网格实体中写增删改的插件去控制页面对应的数据!(目前不会刷新数据)
第二步:子网格在进行增删改操作之后会刷新子网格的数据!所以我们需要给子网格加一个onload事件,但是在表单编辑器中,子网格并不存在onload事件的编辑,故我们需要在主页面加载时通过代码的形式给子网格添加一个加载事件;
第三步:添加完事件之后,我们只需要在子网格的onload事件中写查询主表数据的逻辑
具体代码如下
//主页面加载事件 function PageLoad() { //子网格添加同步数据 SubGridScreening("jcmx"); } //子网格保存刷新主窗体 function SubGridScreening(SubGridName) { //SubGridName:子网格名称 if (Xrm.Page.data.entity.getId() != null) { Xrm.Page.getControl(SubGridName).addOnLoad(function () { Xrm.Page.data.refresh(true);//刷新页面数据 }); } }
我这里的逻辑是子网格增删改数据之后,需要将子网格中数量,总价字段的值进行累加显示在主表字段中进行展示,
光用插件去做,可以实现,但是页面数据需要手动刷新才会看到执行后的数据。
注意:目前不知道是为什么原因,如果想要增删改都能刷新数据,子网格的可编辑状态不予开放,如果开放就只能触发添加和修改