簡體   English   中英

單擊按鈕時顯示進度 Dynamics CRM 365

[英]show progress when click button Dynamics CRM 365

我有一個功能區按鈕來執行自定義工作流程。 這個動作是從 JavaScript 設置的,效果很好。 在這種情況下,我想在單擊后或在自定義工作流執行期間顯示進度加載。

我只是跟着教程在這里 這是我的 javascript 函數代碼:

function showLoadingMessage() {
    try{
        tdAreas.style.display = 'none';
        var newdiv = document.createElement('div');
        newdiv.setAttribute('id', "msgDiv");
        newdiv.valign = "middle";
        newdiv.align = "center";
        var divInnerHTML = "<table height='100%' width='100%' style='cursor:wait'>";
        divInnerHTML += "<tr>";
        divInnerHTML += "<td valign='middle' align='center'>";
        divInnerHTML += "<img alt='' src='/_imgs/AdvFind/progress.gif'/>";
        divInnerHTML += "<div/><b>Working…</b>";
        divInnerHTML += "</td></tr></table>";
        newdiv.innerHTML = divInnerHTML;
        newdiv.style.background = '#FFFFFF';
        newdiv.style.fontSize = "15px";
        newdiv.style.zIndex = "1010";
        newdiv.style.width = document.body.clientWidth;
        newdiv.style.height = document.body.clientHeight;
        newdiv.style.position = 'absolute';
        document.body.insertBefore(newdiv, document.body.firstChild);
        document.all.msgDiv.style.visibility = 'visible';
    }
    catch(ex){
        alert(ex.message);
    }  
}

這是隱藏進度:

function hideLoadingMessage(){
    document.all.msgDiv.style.visibility = 'hidden';
}

這是我在功能區按鈕操作中調用的用於測試加載進度工作與否的函數:

function ribbonButton()
{
    var guid = Xrm.Page.data.entity.getId();
    if (guid != null)
    {
        showLoadingMessage(); //show progress

        /*var workflowId = '04E84379-87E4-E711-814E-000C294D2FF8';
        var workflowName = 'CloneReward';
        ExecuteWorkflow(workflowId, workflowName, function ()
        {
            RefreshForm();
        });*/

        //hideLoadingMessage(); //hide progress
    }
}

當我按下按鈕時,我收到以下錯誤消息:

在此處輸入圖片說明

需要任何建議。 謝謝。

對於此功能,有新的不錯的客戶端 API: https : //docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/clientapi/reference/xrm-utility/showprogressindicator

以下是它在工作中的外觀示例: http : //www.itaintboring.com/dynamics-crm/dynamics-365-v9-progress-indicator-api/

唯一的缺點是它僅適用於 Dynamics 版本 9。

剛剛嘗試了教程,它將解決上述問題。

顯示加載進度:

function _buildLoadingDiv(_entityName) {
    var loadingDiv = "<div id='divLoading'style='width: 100%; height: 100%; display: block; position: fixed; top:0px; background:rgba(255,255,255,0.5);'><table style='width: 100%; height: 100%;'><tr><td align='center' style='vertical-align: middle;'>";
    loadingDiv += "<img id='loading' alt='' src='/_imgs/AdvFind/progress.gif'/><br/>";
    loadingDiv += "<label id='lblStatus'>Loading... " + _entityName + " Execute Workflow</label>";
    loadingDiv += "</td></tr></table></div>";

    $($('body', window.parent.document)).append(loadingDiv);
}

隱藏加載進度:

function _removeLoading() {
    $($('body', window.parent.document)).find("#divLoading").remove();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM