Excel-ähnliche Eingabe- und Tabtasten-Navigation in der Zellenbearbeitung

8

eine Frage für alle fortgeschrittenen in jqgrid.

Ich muss diesen Usecase codieren:

In jqGrid gibt es zwei bearbeitbare Spalten. Ich muss die Zelle bearbeiten. Der Benutzer klickt auf eine editierbare Zelle und wenn er die Taste Enter drückt, wähle ich die nächste editierbare Zelle UNTER DER aktuellen aus.

Anderenfalls, wenn er die Taste tab drückt, wähle ich die nächste bearbeitbare Zelle

  • wenn die letzte Zelle zuletzt ist, setze ich die nächste bearbeitbare Zelle in der nächsten Linie oder
  • Wenn nicht, wähle ich als nächstes aus editierbare Zelle in der aktuellen Zeile.

zusammenfassend - ich brauche genaues Verhalten wie in Excel.

Wenn ich einen besseren Ruf hätte, hätte ich ein Bild hochladen können, um die gewünschte Situation zu demonstrieren.

vielen Dank.

    
kajo 07.01.2011, 18:30
quelle

4 Antworten

7

Ahoj!

Um eine editierbare Zelle an Ihren benutzerdefinierten Event-Handler zu binden, gibt es eine gemeinsame Einstellung in jqGrid: dataEvents -Eigenschaft von editoptions . Für die Suche in jqGrid existieren absolut dieselben Einstellungen . Sie finden einige Codebeispiele hier , hier und hier . Sie werden wahrscheinlich Zellbearbeitungsverfahren im Keyboard-Event-Handler verwenden müssen in der Lage sein, die Bearbeitung einer Zelle zu beenden und mit der Bearbeitung einer anderen Zelle zu beginnen.

Wenn Sie Probleme bei der Implementierung haben, können Sie Ihre Frage an das Codebeispiel anhängen und dann versuchen, es zu ändern.

    
Oleg 07.01.2011, 19:59
quelle
11

Ihre Antwort hilft mir sehr und leitet mich zur richtigen Lösung, obwohl ich mehr als 3 Stunden verbrachte, um richtigen Code zu schreiben, aber ich schaffte das:)

vielen Dank.

fasst zusammen:

Ich habe 2 Variablen definiert:

%Vor%

Ich setze sie in beforeEditCell Ereignisse:

%Vor%

und dann in editoptions für beide editierbaren Zellen setze ich:

erste editierbare Zelle in Zeile ( Inventúrny stav im Bild), Verhalten auf der Registerkarte drücken, um die nächste editierbare Zelle auszuwählen, ist Standard

%Vor%

zweite editierbare Zelle in Reihe (Sklad. cena auf dem Bild) - Ich setze iCol manuell für die nächste editierbare Zelle in der nächsten Zeile

%Vor%     
kajo 10.01.2011 15:47
quelle
2

Ich weiß, dass dies ein altes Thema ist, aber ich habe kürzlich damit gerungen und dachte, ich würde den Ansatz teilen, der für mich funktioniert hat:

%Vor%

Ich habe diesen Ansatz entwickelt, nachdem ich gelesen habe, wie die Funktion editCell von jqGrid mit Tabs umgeht und Tasten während eines Bearbeitungsvorgangs eingibt. jqGrids Keydown-Bindung sollte zuerst ausgelöst werden, gefolgt von dieser. Dieser Code sagt ihm einfach, dass er eine Bearbeitung in der nächsten Zeile beginnen soll, nachdem der ENTER-Handler von jqGrid verarbeitet wurde. Es funktioniert genau wie Tab jetzt, das Edit-Steuerelement bleibt geöffnet.

Ich konnte die editoptions: {dataEvents: ...} Struktur nie vollständig entschlüsseln, also könnte das ein besserer Ansatz sein. Wenn ja, können Sie gerne erklären, wie es überlegen ist.

    
Jarad Bond 09.09.2011 00:20
quelle
0
%Vor%     
Ashish Mehta 20.11.2013 13:53
quelle

Tags und Links