热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Dynamics365CE命令栏按钮点击后刷新表单页面方法

微软动态CRM专家罗勇,回复326或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,followme!Dynamics365CustomerE

微软动态CRM专家罗勇 ,回复326或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!

Dynamics 365 Customer Engagement 定制中少不了为命令栏添加按钮,点击按钮常做的事情包括设置表单字段的值,然后保存记录(保存记录过程中可能触发同步插件执行),再提示成功,用户点击后需要刷新当前页面,以便表单页面应用新逻辑,比如提交后表单页面只读。

刷新当前页面,那还不简单?用 formContext.data.refresh(save).then(successCallback, errorCallback); 或者 formContext.data.entity.save(saveOption);

光是这样不行,下面我介绍一个可行的方法。

命令栏添加按钮执行的Javascript方法增加一个参数来接收传递过来的execution context (执行上下文,一般为表单上下文或者表格上下文),这个 CrmParameter 的名称是 PrimaryControl ,Ribbon的定义示例如下,这里来自官方文档: 。

CommandDefinition Id="SampleCommand"
EnableRules/
DisplayRules/
Actions
JavascriptFunction Library="$webresource:new_mySampleScript.js" FunctiOnName="CloseRequest"
CrmParameter Value="PrimaryControl" /
/JavascriptFunction
/Actions
/CommandDefinition

然后我这里演示执行的代码如下:

function CloseRequest(primaryControl) {
var formCOntext= primaryControl;
formContext.getAttribute("statuscode").setValue(100000006);
formContext.data.save().then(function () {
var entityFormOptiOns= {};
entityFormOptions["entityName"] = formContext.data.entity.getEntityName();
entityFormOptions["entityId"] = formContext.data.entity.getId();
Xrm.Navigation.openForm(entityFormOptions).then(
function () {
var alertStrings = { text: "操作成功!" };
var alertOptiOns= { height: 120, width: 160 };
Xrm.Navigation.openAlertDialog(alertStrings, alertOptions).then(
function success() { },
function () { }
);
},
function (errorOjb) {
console.log(errorOjb);
});
}, function (errorOjb) {
Xrm.Navigation.openErrorDialog({ message: errorOjb.message }).then(
function () {
},
function () {
});
}
);
}

推荐阅读
author-avatar
殇子休
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有