2 Stimmen

Schlüsselereignisse auf dem Datengitter in Flex3

Ich arbeite in Flex3. Hier habe ich ein Datagrid, das Daten enthält. Einige Spalten sind bearbeitbar. Wenn der Benutzer die Spaltendaten ändert, wird der Webservice aufgerufen. Hier rufe ich den Webservice auf, indem ich die Daten, die aus dem Datagrid über die focusOut-Funktion stammen, durch die focusOut-Funktion sende. Jetzt möchte ich den Webservice aufrufen, wenn der Benutzer die Spaltendaten ändert und die Tastaturtaste 'Enter' drückt. Hier kann ich die Funktion aufrufen, aber das Ereignis trägt die Datengitterdaten nicht zur aufgerufenen Funktion. Kann mir jemand eine Lösung dafür geben? Danke.

1voto

Verwenden Sie das Eingabeereignis, um die Daten zu senden Meine Anforderung, die ich für den UPDATE-PROZESS verwendet habe (ICH DENKE, DU ERWARTET AUCH DAS GLEICHE)

ÜBERPRÜFEN SIE DEN CODE...hoffe, dass dies nützlich sein wird....

IN ACTION SCRIPT...VERWENDEN SIE FOLGENDES

public function gridkey(event:KeyboardEvent):void
            {

                if (event.keyCode == Keyboard.ENTER)
                {
                    var obj:Object = event.currentTarget.selectedItem;

                    for(var n:String in cat)
                    {

                        var items:CategoryVO = cat[n] as CategoryVO;
                        if(obj.catCode == items.catCode && obj.orgId == items.orgId)
                        {

                            items.catCode=obj.catCode;
                            items.catDesc=obj.catDesc;
                            items.updateby=obj.updateby;
                            items.alter = "Geändert";  //verwenden Sie private var _alter:String; in der Flex-VO-Klasse, in der Remote-Klassen-Getter und -Setter verwendet werden...//
                            //Alert.show(items.id.toString());
                            DeletedItems.push(items.catCode);
                        //  Alert.show(DeletedItems.toString());

                        }

                    }

                }

0 Stimmen

Vielen Dank @ConquistadorAravinth, jetzt funktioniert es richtig. Ich schätze deine Hilfe wirklich.

0 Stimmen

Yup!:-) @Naveen Kumar Pavuturi

0voto

Jason Towne Punkte 7844

Sie könnten das enter-Ereignis auf Ihrem itemEditor verwenden, um die Daten an Ihren Webdienst zu senden.

Hier ist ein grobes Beispiel:

0voto

Imran Punkte 2684

Ich denke, du solltest Event itemEditEnd verwenden. Details findest du unter

DataGrid Events

Ein nützliches Beispiel ist

Erstellen einer bearbeitbaren DataGrid-Steuerung in Flex

Ich hoffe, das hilft

0 Stimmen

Vielen Dank @Imran und @Jason Towne. Ja, ich habe itemEditor im Datagrid verwendet, dessen übergeordnetes Element ein Panel ist. Wenn ein Benutzer auf das Text-Eingabefeld klickt, rufe ich die focusIn-Funktion auf und speichere die Daten in eine temp-Variable. Wenn der Benutzer Daten eingibt und außerhalb des Feldes klickt, rufe ich die focusOut-Funktion auf.

0 Stimmen

In dieser Funktion wird überprüft, ob die Daten geändert wurden oder nicht. Wenn die eingegebenen Daten von den vorherigen abweichen, rufe ich den entsprechenden Webdienst auf. Jetzt habe ich die Funktion itemEditEnd hinzugefügt, um Tastatureingaben des Benutzers zu akzeptieren. Es funktioniert einwandfrei, aber wenn ein Benutzer Daten ändert und außerhalb des Panels klickt, passiert nichts.

0 Stimmen

Hier möchte ich die vorherigen Daten behalten, wenn ein Benutzer ungültige Daten eingibt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X