Die Vorgehensweise zum binden eines ADF-Tabelle auf den button klicken
Kommen aus ASP.NET ich habe eine harte Zeit mit grundlegenden ADF-Konzepte.
Ich zu binden, müssen Sie eine Tabelle auf eine Schaltfläche klicken, und aus irgendeinem Grund, die ich nicht verstehe (ich bin Neigung in Richtung page life cycle, was ich denke, unterscheidet sich von ASP.NET) es funktioniert nicht.
Dies ist meine ADF-code:
<af:commandButton text="#{viewcontrollerBundle.CMD_SEARCH}"
id="cmdSearch"
action="#{backingBeanScope.indexBean.cmdSearch_click}"
partialSubmit="true"/>
<af:table var="row" rowBandingInterval="0" id="t1"
value="#{backingBeanScope.indexBean.transactionList}"
partialTriggers="::cmdSearch"
binding="#{backingBeanScope.indexBean.table}">
<af:column sortable="false" headerText="idTransaction" id="c2">
<af:outputText value="#{row.idTransaction}" id="ot4"/>
</af:column>
<af:column sortable="false" headerText="referenceCode" id="c5">
<af:outputText value="#{row.referenceCode}" id="ot7"/>
</af:column>
</af:table>
Dies ist cmdSearch_click:
public String cmdSearch_click() {
List l = new ArrayList();
Transaction t = new Transaction();
t.setIdTransaction(BigDecimal.valueOf(1));
t.setReferenceCode("AAA");
l.add(t);
t = new Transaction();
t.setIdTransaction(BigDecimal.valueOf(2));
t.setReferenceCode("BBB");
l.add(t);
setTransactionList(l);
//AdfFacesContext.getCurrentInstance().addPartialTarget(table);
return null;
}
Die auskommentierte Zeile auch nicht funktioniert.
Wenn ich die Liste füllen auf meine Bean Konstruktor, der Tisch macht ok.
Irgendwelche Ideen?
- Ich änderte meine backing-bean-scope zu verlangen, immer noch das gleiche problem
- Ich habe die Rahmen der Sitzung-und es klappte... ich denke, ich sollte die Forschung Bereiche ein wenig
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es wurde eine scope-Ausgabe.
Nach der Lektüre dieser Beitrag, ich denke, der richtige Weg, es zu tun ist, um es zu viewScope
Wenn jemand denkt, dass dies falsch ist, lasst es mich bitte wissen. Für jetzt ist dies meine Antwort.
Ich bin mir nicht sicher, backing-bean-scope ist die richtige, die Sie verwenden möchten. Ich würde vorschlagen, pageFlowScope-oder Session-scope. Diese wird am ehesten anzeigen, was Sie modellieren möchten.
PageFlowScope folgt, was der Benutzer geklickt hat, es werden also zwei Instanzen der gleichen web-app/gleichen Benutzer haben unterschiedliche PageFlow Bereiche.
Session-scope ist in allen Instanzen von der web-app, die vom gleichen Benutzer.
Anwendungsbereich ist für alle Benutzer gleich. Ich möchte vermeiden, diese fast immer.
Anforderungsbereich dauert nur zwischen "Anträge anzeigen". Nicht wirklich nützlich, außer für die extrem kurze Dauer Daten.
Sollten Sie nicht legen Sie es auf sessionScope. Dann wäre es gültig, bis der Benutzer die Sitzung aktiv ist. Sie möchten möglicherweise verwenden Sie entweder pageFlowScope (dies gilt auch für das Leben von einer Seite) oder ein requestScope, die gültig ist, wenn eine Anfrage vom client, bis er eine Antwort erhält.