Ich möchte neue Zeile zum Einfügen von Daten erstellen, wenn ich die Eingabetaste im InputText Feld drücken. Ich habe versucht, dies zu erreichen, indem ich Javascript benutze, um zu überprüfen, ob die Eingabetaste gedrückt ist, und Client- und Server-Listener auf das Eingabefeld einzustellen, aber nicht zu funktionieren scheint. Kann mir jemand helfen, wo liege ich falsch? Meine JSFF Seite:Oracle ADF erstellen neue Zeile beim Drücken der Eingabetaste am Eingangstext
<?xml version='1.0' encoding='UTF-8'?>
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
xmlns:f="http://java.sun.com/jsf/core">
<af:resource type="javascript">
function handleEnterEvent() {
var _keyCode = evt.getKeyCode();
if (_keyCode == AdfKeyStroke.ENTER_KEY){
var comp = evt.getSource();
AdfCustomEvent.queue(comp, "EnterEvent", {fvalue:comp.getSubmittedValue()}, false);
evt.cancel();
}
}
</af:resource>
<af:table value="#{bindings.TransMstView1.collectionModel}" var="row"
rows="#{bindings.TransMstView1.rangeSize}"
emptyText="#{bindings.TransMstView1.viewable ? 'No data to display.' : 'Access Denied.'}"
rowBandingInterval="0" fetchSize="#{bindings.TransMstView1.rangeSize}" id="t1">
<af:column headerText="#{bindings.TransMstView1.hints.TrNo.label}" id="c1">
<af:inputText value="#{row.bindings.TrNo.inputValue}" label="#{bindings.TransMstView1.hints.TrNo.label}"
required="#{bindings.TransMstView1.hints.TrNo.mandatory}"
columns="#{bindings.TransMstView1.hints.TrNo.displayWidth}"
maximumLength="#{bindings.TransMstView1.hints.TrNo.precision}"
shortDesc="#{bindings.TransMstView1.hints.TrNo.tooltip}" id="it1">
<f:validator binding="#{row.bindings.TrNo.validator}"/>
<af:convertNumber groupingUsed="false" pattern="#{bindings.TransMstView1.hints.TrNo.format}"/>
</af:inputText>
</af:column>
<af:column headerText="#{bindings.TransMstView1.hints.TrDt.label}" id="c2">
<af:inputDate value="#{row.bindings.TrDt.inputValue}" label="#{bindings.TransMstView1.hints.TrDt.label}"
required="#{bindings.TransMstView1.hints.TrDt.mandatory}"
columns="#{bindings.TransMstView1.hints.TrDt.displayWidth}"
shortDesc="#{bindings.TransMstView1.hints.TrDt.tooltip}" id="id1">
<f:validator binding="#{row.bindings.TrDt.validator}"/>
<af:convertDateTime pattern="#{bindings.TransMstView1.hints.TrDt.format}"/>
</af:inputDate>
</af:column>
<af:column headerText="#{bindings.TransMstView1.hints.TrMode.label}" id="c3">
<af:inputText value="#{row.bindings.TrMode.inputValue}" label="#{bindings.TransMstView1.hints.TrMode.label}"
required="#{bindings.TransMstView1.hints.TrMode.mandatory}"
columns="#{bindings.TransMstView1.hints.TrMode.displayWidth}"
maximumLength="#{bindings.TransMstView1.hints.TrMode.precision}"
shortDesc="#{bindings.TransMstView1.hints.TrMode.tooltip}" id="it2">
<f:validator binding="#{row.bindings.TrMode.validator}"/>
<af:convertNumber groupingUsed="false" pattern="#{bindings.TransMstView1.hints.TrMode.format}"/>
</af:inputText>
</af:column>
<af:column headerText="#{bindings.TransMstView1.hints.TrType.label}" id="c4">
<af:inputText value="#{row.bindings.TrType.inputValue}" label="#{bindings.TransMstView1.hints.TrType.label}"
required="#{bindings.TransMstView1.hints.TrType.mandatory}"
columns="#{bindings.TransMstView1.hints.TrType.displayWidth}"
maximumLength="#{bindings.TransMstView1.hints.TrType.precision}"
shortDesc="#{bindings.TransMstView1.hints.TrType.tooltip}" id="it3">
<f:validator binding="#{row.bindings.TrType.validator}"/>
<af:convertNumber groupingUsed="false" pattern="#{bindings.TransMstView1.hints.TrType.format}"/>
<af:clientListener method="handleEnterEvent" type="keyPress"/>
<af:serverListener type="EnterEvent" method="#
{backingBeanScope.backing_mas.handleEnterEvent}"/>
</af:inputText>
</af:column>
</af:table>
</ui:composition>
Meine Methode in Backing Bean:
public void handleEnterEvent(ClientEvent ce) {
ViewObject vo = this.getTransMstView1();
vo.executeEmptyRowSet();
Row row = vo.createRow();
vo.insertRow(row);
vo.setCurrentRow(row);
}
Ihre JS-Funktion handleEnterEvent sollte einen Parameter (evt) haben! –
Das hat nicht funktioniert. – SHA