Я пытаюсь получить h: textInput для reerender при изменении, я пробовал его с a4j: ajax и f: ajax.JSF Ajax rerender <h: textInput ...> on Change
При использовании a4j: Ajax:
<h:panelGroup id="xyzPG">
<ui:repeat var="var" ... >
...
<h:inputText id="#{idController.getIdXYZ(var.id)}"
value="#{someModel.value}"
size="3"
styleClass="#{errorController.getErrorStateStyleId(idController.getIdXYZ())}">
<a4j:ajax event="change" render="xyzPG" listener="#{listener.doSomeStuff}" />
</h:inputText>
...
</ui:repeat>
</h:panelGroup>
Это работает в первый раз, после того, как панель обновила первый раз, когда он прекращает обновление Моделла и слушатель не вызывается либо. Однако рендер запускается, вызывая отображение старых значений.
Теперь, когда я заменяю a4j: ajax на f: ajax Я получаю сообщение об ошибке, что идентификатор xyzPG не найден в xyzInput.
<f:ajax event="change" render="@this" listener="#{listener.doSomeStuff}" />
При попытке ограничить засавить к inputText всегда обновляет модель и слушатель называется, однако час: inputText не rerendered.
Я уже пробовал поместить другую панель Panel вокруг вводаText, но это тоже не сработало.
Причина, почему мы не используем час: Datatable потому, что мы должны производить таблицу со следующей планировкой:
----------------------------
| dataSet1 | dataSet 2 |
----------------------------
| dataSet3 | dataSet 4 |
etc...
Поэтому мы используем смещение и шаг атрибуты Ui: повторить.
Пробовали ли вы с другие выравнивания, такие как 'blur',' onkeyup' и т. д.?? – SRy
Ваше динамическое использование 'id' заставляет мои глаза кровоточить. Вы можете избежать всех проблем, связанных с этим, используя что-то подобное в этом ответе: http://stackoverflow.com/a/7312979/785663 Я * думаю * вы страдаете от проблемы с представлением или рендерингом. Нет 'c: repeat' - есть ли у вас' ui: repeat' или 'c: forEach' там? Если последнее, см. Также эту [обязательную ссылку] (http://stackoverflow.com/a/7312979/785663) – mabi
wupps - typ error - поскольку вы справедливо указываете на ее ui: повторите то, что происходит, когда вы выписываете код вместо этого копирования оргинала. Что касается динамического id - я тоже не слишком доволен этим, но из-за специфических ограничений проекта, проект был сделан архитектором проекта, поэтому мы застряли в этом. – dngfng