У меня есть форма поиска, которая использует ajax. Во время события keyup
поля поиска searchKeyFieldId
мне нужно обновить все остальные поля в той же панели.Как визуализировать все поля Grid, кроме одного inputText?
<h:panelGrid id="myGrid" columns="4" >
<!-- When searchKeyFieldId change ... -->
<!-- Need to render all the myGrid EXCEPT searchKeyFieldId -->
<h:outputText value="search key"/>
<h:inputText id="searchKeyFieldId"
value="#{MyController.searchKeyField}"
valueChangeListener="#{MyController.licenseNumberChange}" >
<a4j:ajax event="keyup" render="myGrid" />
</h:inputText>
<h:outputText value=""/>
<h:outputText value=""/>
<!-- Target render fields -->
<h:outputText value="text1"/>
<h:inputText id="field1"
value="#{MyController.field1}"/>
<h:outputText value="text2"/>
<h:inputText id="field2"
value="#{MyController.field2}"/>
<h:outputText value="text3"/>
<h:inputText id="field3"
value="#{MyController.field3}"/>
.....
</h:panelGrid>
Однако, когда я использую render="myGrid"
, то поле поиска также обновляется и поэтому теряет фокус. Конечный пользователь должен снова щелкнуть/сфокусировать поле ввода, чтобы продолжить ввод.
Итак, мне нужно обновить только определенные поля следующим образом:
<a4j:ajax event="keyup" render="field1 field2 field3 field4 field5 ..." />
Однако, у меня есть много полей, 40, чтобы быть точным, это решение не было бы хорошей практикой.
Спасибо человеку. Вы очень полезны @BalusC –