Я пытаюсь отправить значения во всплывающей панели внутри другой панели с событием отправки / действия. Но перед открытием всплывающей панели мне нужно вызвать функцию в моем управляемом компоненте, которая создает новый объект сущности. Внешняя панель имеет только h: form , поскольку вы не можете их вкладывать. Я обернул всплывающую панель в a4j: region , чтобы передать только эту часть, когда пользователь отправляет значения внутри всплывающей панели. Это работает, но не выполнение функции подготовки, которая должна быть вызвана при выполнении всплывающей панели. Я пробовал a4j: commandLink , но этот компонент не работает вместе с rich: popupPanel (странно, поскольку оба они являются компонентами Richfaces ?!). Поэтому я должен передать h: commandLink и использовать ajax.
Как я могу вызвать функцию в моем управляемом компоненте, когда открывается ссылка на открытие / рендеринг всплывающей панели?
(Какой правильный шаблон для этого?)
PS. Исходный вопрос изменился, но не проблема с отправкой значений во всплывающей панели.
Часть файла xhtml:
<h.form>
...
<a4j:region>
<rich:popupPanel id="popup_sys_user_req" modal="false" autosized="true" resizeable="false">
<f:facet name="header">
<h:outputText value="Request New Sector/Category" />
</f:facet>
<f:facet name="controls">
<h:outputLink value="#"
onclick="#{rich:component('popup_sys_user_req')}.hide(); return false;">
X
</h:outputLink>
</f:facet>
<h:panelGrid columns="2">
<h:outputLabel value="Request New:" />
<h:selectOneMenu id="sys_req_type" value="#{userController.selectedSysUserRequest.sysrequesttype}" required="true" >
<f:selectItems value="#{userController.getSysRequestTypeItems('SECTOR_CATEGORY')}">
</f:selectItems>
</h:selectOneMenu>
<h:outputLabel value="Description:" />
<h:inputTextarea id="user_req_desc" value="#{userController.selectedSysUserRequest.description(desc)}" required="true" requiredMessage="Decription is missing" />
</h:panelGrid>
<a4j:commandButton action="#{userController.CreateSysUserRequest()}" value="Send Request" execute="sys_user_req_form" oncomplete="#{rich:component('popup_sys_user_req')}.hide(); return false;"/>
</rich:popupPanel>
</a4j:region>
</h:form>
CommandLink ( повторное редактирование )
<h:commandLink actionListener="#{userController.prepareCreateSysRequest}" value="Request New Sector/Category">
<f:ajax execute="popup_sys_user_req @this" render="popup_sys_user_req">
<rich:componentControl id="popup_ctr" event="click" target="popup_sys_user_req" operation="show"/>
</f:ajax>
</h:commandLink>
----------------------------
//Managed Bean:
public void prepareCreateSysRequest(ActionEvent event ) {
selectedSysUserRequest = new Sysuserrequest();
JsfUtil.log("Prepare Create System User Request");
}
Этот пост продолжает дискуссию о всплывающей панели.
Привет Крис.