Dynamics CRM - 使用 Ribbon Button 生成文件(Create Annotation)后自動刷新 NOTES

需求描述:定制一個 Ribbon Button,為當前 Entity Record 創建一個附件。

問題:生成文件後,在 NOTES 中沒有立即顯示,需要刷新頁面才顯示

要求:Click Ribbon Button >> Generate File >> Refresh Page/Notes

 

 

NOTES

 

解決方案:把鼠標放到 NOTES 上可以發現這是可以點擊的,點擊后會重新 loading Notes 列表,此時可以發現文件顯示出來了,所以,我們可以嘗試通過觸發 OnClick 事件來實現刷新的需求。

 JS 實現如下:只列出主要logic

 1 //定義全局變量
 2 var nodelist = null;
 3 var $ = ($ || parent.$);
 4 
 5 //Form Load 函數
 6 function fnOnLoad() {
 7     nodelist = $("#header_notescontrol")[0].childNodes;
 8 }
 9 
10 //Ribbon Button 綁定的函數
11 function fnOnRibbonButtonClicked(sAction) {
12     if (Xrm.Page.data.getIsValid()) {
13         var attributes = Xrm.Page.data.entity.attributes.get();
14         for (var i in attributes) {
15             attributes[i].setSubmitMode("always");
16         }
17 
18         //。。。。。。。。
19 
20         Xrm.Page.data.save().then(
21             function () {
22                 //save 成功后執行
23                 var _stop = false;
24                 for (var item in nodelist) {
25                     if (_stop) {
26                         break;
27                     }
28                     if (nodelist[item].title == "NOTES") {
29                         nodelist[item].click();//觸發 NOTES 的 Click 事件,刷新列表
30                         _stop = true;
31                     }
32                     else {
33                         continue;
34                     }
35                 }
36             }
37             , function () {
38                 //save 失敗后執行
39             }
40         );
41     }
42 }

注意:需要在OnLoad時獲取到對應的DOM元素

 

posted @ 2020-06-24 16:30  刻師傅,來碗牛雜  阅读(204)  评论(0编辑  收藏  举报