2017-09-04 2 views
0

Wir müssen Slick-Rasterzeilen neu anordnen.Reihen im Slick-Raster neu anordnen

Ich habe oben/unten Symbol in jeder Zeile, möchte ich Animation wie erreichen, klicken Sie auf 'oben' Symbol sollte Zeilen um '1' Position verschieben, aber der Cursor darf seinen Fokus nicht von der aktuellen Zeile verschieben. Und andere Zeilen sollten ihre Position in Bezug auf die "angeklickte Zeile" neu anordnen.

Bitte schlagen Sie eine Lösung für dieses Problem vor. Danke

+0

Die Frage braucht mehr Details. Wenn Sie auf das Symbol klicken, um wie viele Zeilen wird die Ansicht nach oben verschoben? Wenn Sie sagen, dass der Cursor seinen Fokus nicht verschieben darf, meinen Sie, dass er an der gleichen Stelle auf dem Bildschirm bleibt, was bedeutet, dass eine andere Zeile jetzt den Fokus hat? –

+0

Einige weitere Details wurden hinzugefügt. Also, im Grunde möchte ich erreichen, nicht angeklickte Zeilen auf der Benutzeroberfläche zu verschieben, aber andere Zeilen sollten auf der Benutzeroberfläche neu angeordnet werden. Zum Beispiel: Wenn ich in der Benutzeroberfläche auf die Schaltfläche "Nach oben" für die dritte Zeile geklickt habe, sollte sich Zeile 2 nach unten bewegen, und die Cursorposition sollte nicht von Zeile 3 nach oben verschoben werden. – ggtffg

Antwort

0

Sie möchten im Wesentlichen eine Sortierfunktion. Die Methode, die ich wählen möchte, hängt ein wenig davon ab, wie die Backend-Datenbank die Sortierreihenfolge speichert, wenn Sie in einer Datenbank bleiben.
Wenn Sie die Daten nicht persistent speichern,

  • schaffen eine zusätzliche Spalte SortOrder, sortiert nach was auch immer andere Spalten Sie die Standardsortierreihenfolge und stellen Sie SortOrder auf 1, 2, 3, ..., sein wollen n
  • erstellen, um die Tasten einen Formatierer verwendet wird, und machen die Auf-/Ab-Tasten JavaScript aufrufen, die
    • die Sortiernummer mit der Zeile vor Schalter/nach
    • Orte und den Gitter rerenders
    • stellt die Schärfe (falls erforderlich), um die gewünschte Zeile unter Verwendung grid.setActiveCell() und grid.focus()

Pesonally, I speichert SortOrder als int Datenbankspalte, und setzen ihn auf allen Nullen initial, so dass sekundäre Standardsortierspalten verwendet werden können, wenn keine benutzerdefinierte Sortierung gewünscht wird. Der Sortierindexalgorithmus ist jedoch wesentlich komplexer.