Ich habe eine Schleife Datensätze anzeigen, und ich möchte senden Schaltflächen zu allen Zeilen hinzufügen. Der Grund, warum sie eingereicht werden müssen, liegt darin, dass unten ein Formular vorhanden ist, das ich beibehalten möchte, wenn der Benutzer eine der Schaltflächen auswählt.Context-Parameter funktioniert nicht in Tapestry 5.3.2 für Submit
Ich habe die Kommentare über die Verwendung von Defer, etc, aber nichts scheint für mich zu arbeiten. Der aktuelle Code einreichen ich versuche:
<input t:id="deleteItem" t:type="submit" t:context="item.number.content" value="deleteItem" class="deleteItem" />
auf den Kontext zu erweitern: Der aktuelle Kontext I aufgeführt haben, ist nur eine Zeichenfolge innerhalb der Anzahl Objekt innerhalb des Item-Objekt. In der Tat wird es im obigen Code vollkommen in Ordnung angezeigt.
Um das anders zu testen, habe ich item.number.content durch eine getContext() -Methode ersetzen lassen und eine hartcodierte 1 zurückgegeben. Ich debugge dann diese Methode und sehe, dass sie aufgerufen wird, wenn die Seite gesendet wird. nicht wenn die Seite so gerendert wird, wie ich es erwartet hätte.
Der Kontext wird erst nach dem Drücken der Schaltfläche ausgefüllt. Versteh ich etwas falsch?
Edit:
Also mein Problem ist das Kontextwert mit bekommen. Nehmen wir zum Beispiel mein Code:
<t:loop source="itemsList" value="item" formState="none">
<!-- Display info here -->
<input t:id="deleteItem" t:type="submit" t:context="myContext" value="deleteItem" class="deleteItem" />
</t:loop>
Die Definition für getMyContext ist:
public String getMyContext() {
String context = item.getNumber().getContent();
return context;
}
Das Problem ist, wird das Verfahren erst aufgerufen, nachdem die einreichen wurde, zu welchem Zeitpunkt die Variable „Position“ gedrückt ist Null. Ich habe erwartet, dass getMyContext jedes Mal aufgerufen wird, wenn der Submit-Button gerendert wird. Wenn dann das Submit ausgewählt wird, wird das Event mit dem entsprechenden Kontext ausgelöst. Ist das sinnvoll?
Was meinst du mit nie bevölkert? Wie rufen Sie den Kontext in Ihren Ereignishandlern ab? Kannst du diesen Code zur Frage hinzufügen? – joostschouten
Danke, ich habe Folgendes hinzugefügt: Der aktuelle Kontext, den ich aufgelistet habe, ist nur eine Zeichenfolge innerhalb des Nummernobjekts innerhalb des Elementobjekts. In der Tat wird es im obigen Code vollkommen in Ordnung angezeigt. Um dies anders zu testen, habe ich item.number.content mit einer getContext() -Methode ersetzen und es eine hart-codierte 1 zurückgeben. Ich debuggen diese Methode und sehen, dass es aufgerufen wird, wenn die Seite gesendet wird, nicht wann Die Seite wird so gerendert, wie ich es erwartet hätte. – DSmyte