需求描述:定制一個 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元素