[Oracle ADF] InputText Считать значение по ENTER
Пусть будет с panelBox и с кнопкой (как на проекте)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<af:panelBox text="Дополнительная информация" id="pb5"
showDisclosure="false" styleClass="panelBox-filter" showMaximize="never">
<f:facet name="toolbar"/>
<af:panelGroupLayout id="pfl1" layout="horizontal" halign="start">
<af:inputText id="it3" columns="40" value="#{MyBean.searchByAdditionalInformation}">
<af:clientListener method="handleEnterEvent" type="keyPress"/>
</af:inputText>
<af:button actionListener="#{MyBean.searchByAdditionalInformation}"
id="searchLink" icon="/images/menu/func_search_16_ena.png"/>
</af:panelGroupLayout>
</af:panelBox>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private String searchByAdditionalInformation;
public void setSearchByAdditionalInformation(String searchByAdditionalInformation) {
this.searchByAdditionalInformation = searchByAdditionalInformation;
}
public String getSearchByAdditionalInformation() {
return searchByAdditionalInformation;
}
public void searchByAdditionalInformation(ActionEvent actionEvent) {
System.out.println(" RESULT " + searchByAdditionalInformation);
if (!((searchText == null) || (searchText.length() == 0))) {
// сделать то
} else {
// сделать се
}
}
Это вообще подключаемый к странице js. Смысл такой. По Enter на странице ищется компонент с id “searchLink”. И кликается по нему. А на саму кнопку вешается событие ее нажатия.
При необходимости ее можно сделать скрытой.
1
2
3
4
5
6
7
8
9
function handleEnterEvent(evt) {
var \_keyCode = evt.getKeyCode();
if (\_keyCode == AdfKeyStroke.ENTER_KEY) {
var comp = evt.getSource();
var button = comp.findComponent('searchLink');
AdfActionEvent.queue(button, button.getPartialSubmit());
evt.cancel();
}
}