...

Возвращение данных из виджета код в контекст БП.

Тема в разделе "Вопросы по платформе", создана пользователем px2099, 15 авг 2022.

  1. px2099

    px2099 Участник

    Коллеги, есть задача, на которой застопорился.
    Нужно нарисовать табличку с заранее неизвестным числом столбцов (то есть контекстная переменная не подходит).
    После заполнения её пользователем желательно данные получить в виде JSON и на их основании провести вычисления.
    На форму задачи добавлен виджет "код", который использует библиотеку Tabulator JS.
    Табличка на основании динамических данных рисуется, всё хорошо, но есть проблема.
    Есть "Код", а есть элементы формы со стандартными реквизитами контекста задачи. Хотелось бы записать результаты работы пользователя с таблицей в один из этих реквизитов, но не получается.
    В Элма 3 можно было записать яваскриптом, заложенным в Razor, значение в реквизит и оно потом читалось обратно при завершении задачи.
    В 365-й читаю контекст после записи из консоли, он всё так же пуст.
    У кого-то был такой опыт считывания данных?
  2. px2099

    px2099 Участник

    Помню на курсах разработки говорили про ViewContext, ещё вроде есть возможность вызывать функции в шаблоне виджета "Код".
    По итогу так как требуемые данные были строкой, было принято решение сохранять в JS куки с JSON таблицы, а потом читать их из TS.
  3. grebina

    grebina Техническая поддержка

    По поводу вызова функций. В виджете Код можно вызывать сценарий, например, так :
    <% Scripts.renderWidget() %>
    где renderWidget() - функция на стороне клиента
  4. ruslan.fomin

    ruslan.fomin Участник

    Коллеги а есть детальный пример?
    Я тоже столкнулся с подобным кейсом но не разобрался как передать значение данных из JS в контекст процесса или приложения
  5. savvateev

    savvateev Техническая поддержка

    Добрый день! Например в контексте приложения создана переменная типа "Строка" с кодом "string" тогда, чтобы с помощью виджет "Код" обратиться к данной переменной и изменить её значение необходимо в виджете написать следующий код:
    <% Context.data.stroka = "Новое значение"%>

    После выполнения данной строчки значение переменной типа "Строка" будет изменено.
    Также для отображения значения какой-либо переменной из контекста приложения Вы можете воспользоваться следующей конструкцией:
    <%= Context.data.stroka %>
    После выполнения данной конструкции виджет код вернет значение переменной, то есть строку "Новое значение"