Как получить данные формы с веб-ресурса после использования Xrm.Navigation.openWebResource () - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть веб-ресурс, который открывается по нажатию кнопки следующим образом:

var windowOptions = { height: 400, width: 50 };
Xrm.Navigation.openWebResource("DCWIMS_/html/datepicker.html", windowOptions);

У меня есть небольшое поле ввода внутри html-ресурса (как вы можете догадаться, это поле даты и времени). У меня вопрос, как я могу получить данные поля после закрытия формы? Я вызвал код выше из функции

function Cancel() {

   
    var contract_id = Xrm.Page.data.entity.getId();
    var contract_guid = contract_id.replace(/[{}]/g, "");
    
    var windowOptions = { height: 400, width: 50 };
    Xrm.Navigation.openWebResource("DCWIMS_/html/datepicker.html", windowOptions);

    //need field data to be returned so I can set a field in the form to its value
    var datefield = ??

    formContext.getAttribute("new_cancellationdate").setValue(datefield);


    //Set the stage to send enquiry letter
    XrmSvcToolkit.setState({
        id: Xrm.Page.data.entity.getId(),
        entityName: "new_contract",
        stateCode: 1,
        statusCode: 100000002, //Cancelled
        async: false
    });
    
    }

Вот веб-ресурс html:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="ClientGlobalContext.js.aspx" type="text/javascript"></script>
    <title>Set Cancellation Date</title>

    <script>

        

        

        window.onload = function () {
            document.getElementById('party-time').onsubmit = function () {

                var date = document.getElementById('party-time').value;
                webResourceData.windowCallback(date);

                // You must return false to prevent the default form behavior
                return false;
            };
        };

        function Quit() {
            window.close();
        }

        


    </script>
</head>

<body>

    
 
  <fieldset>
    <legend>Cancellation Date</legend>

    <div>
        <label for="party-time">Date/time:</label>
        <input type="datetime-local" id="party-time"
               name="party-time" value=""
               min="" max="" />
        <button type="submit" onclick="Quit()">Submit </button>
    </div>


</fieldset>
 
 
</body>
</html>

1 Ответ

0 голосов
/ 03 ноября 2018

Попробуй это. Вместо того, чтобы возвращать значение из веб-ресурса в родительское окно, присвойте его из самого HTML.

    function Quit() {
            window.opener.Xrm.Page.getAttribute("new_cancellationdate").setValue(document.getElementById('party-time').value);

            window.close();
    }
...