#java #ajax #jsf-2 #richfaces #toggle
#java #ajax #jsf-2 #richfaces #переключение
Вопрос:
У меня есть панель переключения и командная кнопка a4j, я хотел бы отправить форму и следующую страницу по завершении.
Но это не работает, это не следующая страница, а только отправка. Вот код.
<a4j:commandButton action="#{inputData.inputId}" value="Next">
<f:param name="id" value="#{userBean.id}" />
<rich:toggleControl targetItem="@next" event="complete"/>
</a4j:commandButton>
Я попробовал oncomplete=»#{rich:component(‘tooglepanelid’)}.next();» тоже, тоже не работает.. где я могу найти документ по API togglepanel?
Ответ №1:
Вы можете найти API здесь: http://docs.jboss.org/richfaces/latest_4_X/vdldoc /
панель переключения: http://docs.jboss.org/richfaces/latest_4_X/vdldoc/rich/togglePanel.html
Хотя имейте в виду, что работа все еще продолжается.
Если вы измените событие на щелчок, это сработает? Я не думаю, что complete является допустимым значением, поскольку oncomplete не является допустимым событием JS для «родительского» компонента. Но не уверен…
Также попробуйте ввести тег messages, чтобы узнать, есть ли какие-либо ошибки.
Что касается этого:
Я попробовал oncomplete=»#{rich:component(‘tooglepanelid’)}.next();»
Я не думаю, что next() является допустимой функцией JS для этой панели переключения, основываясь на справочной документации по компонентам RF, эти функции выглядят как те, которые вам нужно использовать:
Компонентом <rich:togglePanel> можно управлять через JavaScript API. JavaScript API предоставляет следующие функции, которые являются общими для всех переключаемых панелей:
- GetItems() возвращает массив элементов, содержащихся в панели переключения.
- getItemsNames() Возвращает массив имен элементов, содержащихся в переключаемой панели.
- switchToItem(имя_элемента) Переключается и отображает элемент, идентифицируемый строкой имя_элемента, переданной в качестве параметра.
- firstItem(), prevItem(), nextItem(), lastItem() Переключаются и отображают первый элемент, предыдущий элемент, следующий элемент или последний элемент.
Комментарии:
1. Отлично подходит для предоставленного вами API! Кстати, switchType=»server» и oncomplete=»#{rich:component(‘tpid’)}.switchToItem(‘panelitemid’);» работает. Это накладные расходы, поскольку вся панель переключения должна передаваться снова и снова. Есть идеи по улучшению этого?
2. у вас не может быть switchType=»ajax»? Затем только в том же компоненте, в котором у вас есть завершенный attr, включите повторный attr и только повторно укажите идентификатор компонента, который вы хотите обновить
3. На другой странице все еще что-то не так. Наконец, это мое решение, switchType =»ajax» и ActiveItem =»#{inputBean.tabname}» … изменив ActiveItem, я могу имитировать эффект… хотя спасибо за ваш ответ. очень хорошая ссылка.