Флажки внутри дерева файлов - PullRequest
0 голосов
/ 20 мая 2019

Итак, проблема в том, что я получаю сообщение об ошибке во время выполнения о флажках, сгенерированных внутри файлового дерева, которые должны быть внутри элемента формы.Дело в том, что он находится внутри элемента формы, но элемент формы обернут вокруг дерева следующим образом:

<t:Form t:id="form>
  <t:Tree t:id="tree" model="model" node="node">
    <p:label>
      ${node.label}
      <t:Checkbox value="checkboxNode.selected" />
    </p:label>
  </t:Tree>
</t:Form>

Корневой уровень узлов создает флажки без проблем.Однако, когда я выбираю плюс, чтобы развернуть ветвь дерева, он выдает ошибку для флажков ветвления.Это исчезнет, ​​если я обновлю страницу и запомню, какие ветви были расширены.Если я пойду, чтобы расширить больше, то он снова выдаст ошибку.То же самое происходит, если я минимизирую ветвь, а затем снова расширяю ее.

Я подозреваю, что это связано с тем, как при расширении дерева генерируются его поля с помощью вызова AJAX, и оно не может обнаружить обернутую формуснаружи.Я подумал о двух возможных работах:

  1. По умолчанию развернутые узлы и отключение функции минимизации.Однако я упускаю одно из преимуществ взаимодействия и организации файлового дерева.
  2. Поместите форму внутри метки.Это создает много ненужных дополнительных форм, хотя я не совсем уверен, как объединить это в конечную цель создания списка групп для отправки электронных писем на основе выбранных ярлыков.

У кого-нибудь здесь есть какие-либо идеи о том, как лучше обойти эту проблему, или, может быть, о том, как сгенерированные флажки распознать внешнюю форму без перезагрузки страницы?

Ответы [ 2 ]

1 голос
/ 24 мая 2019

Завершено с использованием другого маршрута. Проблема, с которой я столкнулся с флажками, которые нарушали условия сделки, заключалась в том, что я не мог придумать, как указать булевому значению на стороне сервера для обновления на основе флажков на стороне клиента.

Причиной этого было то, что логические значения были сгенерированы по необходимости, а не как фиксированный набор на стороне Java страницы. Попробовал обойти, связав уникальные идентификаторы с логическими значениями на стороне сервера, но даже тогда я не смог определить способ связать эти идентификаторы с флажками на стороне клиента.

Так что вместо этого я использовал ссылки на события, которые могут иметь контекст. Я просто передал сгенерированные идентификаторы узлов дерева в качестве контекста, который может искать узел в ссылке на событие и быть добавлен в список «выбранных» на сервере.

0 голосов
/ 24 мая 2019

Как JavaDoc для Tree компонента состояния:

Дерево не компонент управления формой ...

Посмотрите на исходный код AjaxFormLoop и то, как он обрабатывает обновления форм AJAX. Я считаю, что вам нужно создать собственный компонент для ваших нужд.

...