bootstrap -выбрать. js - javascript добавление опций выбора из CRM Web API завершилось неудачно - PullRequest
0 голосов
/ 28 января 2020

У меня самая странная проблема с некоторыми веб-ресурсами CRM и bootstrap -выберите. js, и я надеюсь, что кто-то может указать, насколько я слеп.

Моя ситуация такова, что у меня есть html веб-ресурс, который отображается как модальное с использованием оповещения. js, в модале у меня есть вызов web api, чтобы получить список пользователей и затем заполнить параметры из bootstrap -выберите. js выберите раскрывающийся список. Все работает, модальные загрузки, вызов веб-API получает всех пользователей, проходит через и создает параметры ..... и теперь странность (",)

Использование Chrome Dev Tools - если я сделаю шаг код и пусть он завершает все параметры видны и выбираются (Woohoo!) - однако, если я позволю ему работать без пошагового выполнения кода, он создает параметры, но они не видны ????

Я ходить по кругу, пытаясь решить это, я далеко от эксперта с JS Я просто не могу видеть, что происходит с этим.

Заранее спасибо, Дэвид

    <script src="ClientGlobalContext.js.aspx" type="text/javascript" ></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.9/dist/css/bootstrap-select.min.css">
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.9/dist/js/bootstrap-select.min.js"></script>

    <script>
    $.fn.selectpicker.Constructor.BootstrapVersion = '4.1';
    </script>

    <div class="form-group">
    <select class="selectpicker" multiple data-live-search="true" data-actions-box="false" title="Choose CLI Users" id="deptUserList" data-width="100%"></select>

    </div>
    </form>
    <script>
    $('#deptUserList').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
    alert($('select').val());
    });
    </script>

    <script>

    $(document).ready(function () {
    debugger;
    var crmWindow = parent.Alert.getCrmWindow();

    getParentAccount();

    var submitButton = parent.Alert.$("#alertJs-tdDialogFooter button:first");
    submitButton.prop('disabled', false);

    function getParentAccount() {
    debugger;
    var crmWindow = parent.Alert.getCrmWindow();

    var parentAccountGUID = crmWindow.Xrm.Page.getAttribute("accountid").getValue()[0].id;
    var parentAccountGUID = parentAccountGUID.replace(/[{}]/g, "");
    var parentAccountName = crmWindow.Xrm.Page.getAttribute("accountid").getValue()[0].name;

    //document.getElementById('cliDept_Account').value = parentAccountName;

    var req = new XMLHttpRequest();
    req.open("GET", crmWindow.Xrm.Page.context.getClientUrl() + "/api/data/v8.1/cliusers?$select=accountid_value,cliuserid,departmentid_value,parentaccountid_value,username&$filter=parentaccountid_value eq " + parentAccountGUID + " and  departmentid_value eq null&$count=true", true);
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
    req.onreadystatechange = function () {
    if (this.readyState === 4) {
    req.onreadystatechange = null;
    if (this.status === 200) {
    var results = JSON.parse(this.response);
    var recordCount = results["@odata.count"];
    for (var i = 0; i < results.value.length; i++) {
    debugger;
    var accountid_value = results.value[i]["accountid_value"];
    var accountid_value_formatted = results.value[i]["accountid_value@OData.Community.Display.V1.FormattedValue"];
    var _accountid_value_lookuplogicalname = results.value[i]["accountid_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
    var cliuserid = results.value[i]["cliuserid"];
    var departmentid_value = results.value[i]["_departmentid_value"];
    var _departmentid_value_formatted = results.value[i]["_departmentid_value@OData.Community.Display.V1.FormattedValue"];
    var _departmentid_value_lookuplogicalname = results.value[i]["_departmentid_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
    var _parentaccountid_value = results.value[i]["_parentaccountid_value"];
    var _parentaccountid_value_formatted = results.value[i]["_parentaccountid_value@OData.Community.Display.V1.FormattedValue"];
    var _parentaccountid_value_lookuplogicalname = results.value[i]["_parentaccountid_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
    var username = results.value[i]["username"];

    console.log("User " + i + " : " + username);

    var select = document.getElementById('deptUserList');
    var opt = username;
    //alert(opt);
    var el = document.createElement('option');

    el.textContent = opt;
    el.value = opt;
    select.appendChild(el);



    }
    } else {
    crmWindow.Xrm.Utility.alertDialog(this.statusText);
    }
    }
    };


    req.send();
    }
    });


    </script>

    ```



...