В чем смысл тегов xpages xp: include, если данные, содержащиеся в нем, не сохраняются при вызове xsp?

В приложении с одним пользовательским интерфейсом, которое я создаю, есть несколько форм, каждая из которых имеет общий настраиваемый элемент управления для кнопок Сохранить, Сохранить и закрыть, Изменить, Отменить, Удалить. Эти формы состоят из нескольких панелей с вкладками, которые были созданы как отдельные страницы xpages. Эти страницы вызываются главной xpage с помощью тега include xp.

<xp:include pageName="sub_tab_6.xsp" id=include6"></xp:include>

Этот метод отлично справляется с отображением данных и разрешает ввод данных, однако любой ввод данных или редактирование теряются даже при нажатии кнопки «Сохранить». Эти поля на главной вызывающей xpage сохраняются, однако эти данные во включенных xpages (и тех, которые находятся в частях формы, помещенных в Custom Controls, я тоже пробовал), не сохраняются.

Я попытался, для удовольствия, разместить отдельную кнопку «Сохранить» на подстранице, и это вызвало хаос: некоторые поля переходили в режим чтения и, конечно же, начали появляться конфликты сохранения.

Есть ли лучший способ дизайна формы, если не считать слияния моих подстраниц с основной xpage?

(Клиент Windows: выпуск 9.0.1 FP9 (Сервер: FP10, Longhorn64 6.1)


person Leon Matthys    schedule 02.08.2018    source источник
comment
Кто угодно? Бьюллер?   -  person Leon Matthys    schedule 02.08.2018
comment
Это зависит от того, что находится на включенной странице - определен ли DominoDocument для каждой страницы? Если это так, это может вызвать конфликты репликации. Если требуется только один документ, убедитесь, что между ними обоими определен только один. Я бы предложил создать настраиваемый элемент управления, а не включать еще одну страницу - это похоже на «подформу» в форме заметок.   -  person teleman    schedule 02.08.2018
comment
Пожалуйста, включите некоторый шаблонный код, включая определение источника данных и то, что написано на кнопках. Очень мало чего можно сделать. Но, как говорит телеман, я не уверен, что это стандартный вариант использования xp:include   -  person Paul Stephen Withers    schedule 07.08.2018
comment
@Paul: Как правильно использовать тег xp:include? Другими словами, как большинство людей его используют?   -  person Leon Matthys    schedule 14.08.2018
comment
Я никогда не испытывал необходимости использовать это. Непонятно, почему были созданы отдельные XPages, в отличие, например, от создания Custom Control, который добавляется к XPage с панелями с вкладками и автономным XPage. Также неясно, где определены источники данных? Это может иметь большое влияние на то, что будет сохранено.   -  person Paul Stephen Withers    schedule 14.08.2018
comment
Одна из возможных причин использования включений над настраиваемыми элементами управления - эмуляция вычисленных подчиненных форм. Если вам требуются определенные настраиваемые элементы управления в зависимости от содержимого главной страницы, может быть сложно добавить все возможные настраиваемые элементы управления и контролировать все отображаемые атрибуты. Вычисляемая страница включения проще.   -  person Tom Van Aken    schedule 18.10.2018


Ответы (1)


Если вы используете настраиваемый элемент управления или страницу включения, не определяйте на нем свой источник данных, а используйте имя источника данных вашей Xpage. Например: если ваш источник данных на xpage называется document1; вы можете использовать document1 в своем настраиваемом элементе управления или включить, даже если он там не определен.

Это будет работать нормально, если имя источника данных будет одинаковым на всех страницах Xpages, где вы используете включаемый или настраиваемый элемент управления. Если вам нужен более динамичный подход, вы можете передать источник данных как свойство настраиваемого элемента управления (и получить к нему доступ через композитные данные). Подробнее об этом методе можно узнать здесь Как отправить источник данных документа в пользовательский элемент управления в XPages?.

person Tom Van Aken    schedule 18.10.2018