...

Динамическая форма: управление элементами на форме

Тема в разделе "Разработчикам", создана пользователем mrogov, 4 окт 2018.

  1. mrogov

    mrogov New Member

    Коллеги, подскажите, можно ли динамически формировать текст и управлять компонентами на форме?

    Пример: Делаю новый объект, делаю для него Форму для создания / редактирования.

    На форме есть элемент с выпадающим списком других объектов. Хочу при изменении значения выполнять пересчет данных для информации пользователя и показывать их на форме (до сохранения)

    Иду в свойства выпадающего списка и делаю обработчик при изменении:

    public virtual void ChangeAgent (IIncomingPayment entity, EleWise.ELMA.Model.Views.FormViewBuilder<IIncomingPayment> form)

    Можно ли отсюда добраться до визуальных элементов на форме и изменять их значения?
     
  2. arkarimov

    arkarimov Member

    Смотря о чем речь. Само представление поменять не сможете особо (т.е. добавить поле которого нет на форме, поменять местами поля и тп). А вот с значениями конечно можете через entity получить доступ ко всем значениям объекта и менять их как заблагорассудится. Причем независимо от того показан элемент на форме или нет.
     
  3. mrogov

    mrogov New Member

    Если я правильно понял, чтобы мне сформировать произвольный динамический текст на форме, мне нужно, чтобы этот текст был свойством объекта?

    Делаю вывод на форму entity.Description

    И когда я буду его менять через событие, текст будет меняться на форме?

    Если текст не имеет отношение к объекту, то мне его никак не "нарисовать" на этой форме.
     
  4. mrogov

    mrogov New Member

    Еще вопрос вдогонку: если переходить на "рисование" форм на Razor - для динамической формы данные надо получать из контроллера через Ajax запросы. Если нужна небольшая доработка, то делать собственный модуль не очень хочется.

    Есть способ сделать серверную логику для контроллера в Дизайнере?
     
  5. arkarimov

    arkarimov Member

    Да, все верно
     
  6. arkarimov

    arkarimov Member

    Есть такое, меня также ломало сильно делать модуль ради небольшой доработки, способ костыльный - сделать скрытое в свернутой панели поле на изменение которого повесить нужный код, событие изменения поля посылать JSом. Более правильный но задача в моем случае не стоила даже небольших исследований - разобраться в том что ELMA отправляет при событии изменения поля/нажатии кнопки, и формировать такой же JSкод в Razor разметке.
     

Поделиться: