Как вызвать af:popup с другой страницы?

Я часто использовал af:popup в своем приложении и вызываю всплывающее окно только со страниц, на которых оно создано. Например, если popup1 создан на странице Page1, я могу вызвать его только с этой страницы!

Я хочу вызвать всплывающее окно, созданное на странице 1 со страницы 2. Реальный сценарий заключается в том, что я хочу создать всплывающее окно в шаблоне страницы и использовать его везде.

Проблема в том, что он не распознает привязки, которые используются во всплывающем окне при вызове с другой страницы. Кто-нибудь знает, как это исправить или избежать? Скажите, пожалуйста, какой подход вы использовали в этом случае? Спасибо


person Noah Martin    schedule 05.10.2013    source источник


Ответы (2)


На самом деле 1 определение страницы (контейнер привязки) на страницу не является жестким/фиксированным ограничением. Вы можете использовать один и тот же PageDef для нескольких страниц. Правда необычно, но работает. Перейдите к файлу Databindings.cpx. Вы заметите, что страница jspx связана со своим файлом pagedef не тесно связанной/прямой ссылкой, а косвенным UsageID. Отредактируйте метаданные, чтобы страница 1 и страница 2 использовали один и тот же файл определения страницы через использованиеID. Затем контейнер привязки будет использоваться обеими страницами.

НО, PageTemplates могут иметь свои собственные привязки страниц - вы пробовали это?

person Joe    schedule 05.10.2013
comment
Спасибо за ответ, да, я знаю о привязках PageTemplates, но проблема в том, что когда я нахожусь на определенной странице, привязки шаблона не распознаются, они считаются привязками другой страницы. Однако я попробую первый вариант использования одного и того же файла pagedef для всех страниц. - person Noah Martin; 06.10.2013
comment
ваш ответ помог мне найти подход к решению. Я изменил каждый идентификатор использования каждого компонента во всплывающей форме на что-то вроде: #{data.OtherPageDef.Title.inputValue}, я также изменил привязки CreateInsert, Commit, Rollback. Теперь все в порядке :) Спасибо! - person Noah Martin; 07.10.2013
comment
Отличный совет, Джо! Я не знал об этом. Я уверен, что когда-нибудь это будет полезно. - person gnunaes; 07.10.2013

Если проблема заключается в том, что всплывающее окно при использовании на странице 2 не распознает привязки со страницы 1, это связано с тем, что у вас нет этих привязок на странице 2. Проверьте свои привязки Page2 и убедитесь, что у вас одинаковые (они также должны называться одинаково). Вам нужно будет добавить их, если их там нет! Каждая страница имеет свой набор привязок.

Надеюсь, это поможет.

person gnunaes    schedule 05.10.2013
comment
Спасибо, я знаю об этом, но это все еще немного странно.. Вы когда-нибудь сталкивались с этой проблемой? Если вы это сделали, пожалуйста, скажите мне, что мне делать. Я использовалboundet-task-flows в качестве всплывающих окон и в этом исправил первую проблему, но неожиданно IE показывает 404 для этого типа всплывающего окна. - person Noah Martin; 05.10.2013