Dynamics CRM 2013 subgrid刷新后刷新主表单
2014-09-02 09:36
253 查看
项目中会遇到这样的需求,会根据subgrid中的数据变化去更新主表单中的某个或多个字段值,一般的做法就是写插件根据subgrid中实体数据的变化在后台更新主表数据库,但后台更新了要反映到前台就得使用刷新操作了。
为实现这个功能有两种方式:
1、在主表单加一个定时任务,定时的去捞取后台数据库的数据和前台比较,看是否一致如果不一致则刷新主页面加载最新的数据,代码如下,第一行放在onload事件中
2、向subgrid的refresh事件追加一个事件来刷新主表单。这种方式优于第一种,因为前者会不停的向后台发送查询请求显然影响性能。代码如下,第一行放在onload事件中
这边给绑定事件添加了2.5秒的延迟,因为这样能保证整个页面都加载完后再执行。这里的刷新事件可以用SDK中提供的Xrm.Page.data.refresh(),但实际使用后会发现会无限刷所以弃用。但用window.loaction.reload()也有个问题,当我点击主表单的保存按钮后系统会调用refresh方法进行局部刷新,那subgrid就会刷新导致调用一次页面的reload刷新整个页面,用户体验不是很好。
所以上述两种方式看你选择哪种了,如果你有第三种方式还望不吝赐教。
为实现这个功能有两种方式:
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 SubGridRefresh() { var grid = document.getElementById("subgridName"); if (grid) { grid.control.add_onRefresh(function () { window.location.reload(true);; }); } }
这边给绑定事件添加了2.5秒的延迟,因为这样能保证整个页面都加载完后再执行。这里的刷新事件可以用SDK中提供的Xrm.Page.data.refresh(),但实际使用后会发现会无限刷所以弃用。但用window.loaction.reload()也有个问题,当我点击主表单的保存按钮后系统会调用refresh方法进行局部刷新,那subgrid就会刷新导致调用一次页面的reload刷新整个页面,用户体验不是很好。
所以上述两种方式看你选择哪种了,如果你有第三种方式还望不吝赐教。
相关文章推荐
- Dynamics CRM 2013 subgrid刷新后刷新主表单
- Dynamics CRM 2013 subgrid刷新后刷新主表单
- Dynamics CRM 2013 subgrid刷新后刷新主表单
- Dynamics CRM 2013 SP1 客户表单界面上联系人subgrid上的添加现有联系人功能缺失
- Dynamics CRM 2013 SP1 客户表单界面上联系人subgrid上的添加现有联系人功能缺失
- Dynamics CRM 2013 SP1 客户表单界面上联系人subgrid上的添加现有联系人功能缺失
- Dynamics CRM 2013 SP1 客户表单界面上联系人subgrid上的添加现有联系人功能缺失
- subgrid更新后刷新主表单
- 表单中只有一个文本框时,回车页面刷新错误
- bootstrap表单按回车会自动刷新页面的解决办法
- 实现不刷新整个页面来 submit 提交表单
- Dynamics Crm 2011 Or 2013 IFD 部署一段时间后,CA验证问题
- 页面不刷新,提交表单
- javascript发送表单文件,ajax异步,不刷新页面上传PDF文件,并写入数据库,得到异步数据,提示上传成功或失败
- Form表单中的button导致页面刷新而无法进入Ajax请求回调函数
- 使用Django Form解决表单数据无法动态刷新的两种方法
- ASP.NET中防止页面刷新造成表单重复提交执行两次操作
- SharePoint 2013 修改表单认证登录页面
- Microsoft Dynamics CRM 2013 相关安装包下载
- Dynamics CRM2011/2013 站点地图sitemap的翻译