2016-07-06 11 views
2

I Das folgende Beispiel aus Ag-grid Implementierung versucht: Example - Multiple Row Selection. Insbesondere Beispiel - Auswahl mehrerer Zeilen. Wenn ich die Zeilen mit Verschiebung in Chrome-Mozilla-Opera wählen, ist alles in Ordnung, wie man auf dem Bild leider 1.Umschalt Zeilenauswahl in ag-Gittern im Internet Explorer wählt Zusatztext

enter image description here

sehen kann, muss ich auch IE-Browser unterstützen. Wenn ich die gleiche Operation in IE ausführe, wurde auch ein zusätzlicher Text ausgewählt: Titel oben und so weiter. Gibt es eine Möglichkeit, dieses Problem zu lösen?

enter image description here

P. S. Ist es besser ein Plunkr für dieses Beispiel vorzubereiten oder reicht das Beispiel von ag-grid Webseiten?

Antwort

1

Abschaltzeit Benutzerauswahl für Sie Seite, setzen Sie diese CSS auf den Körper: body { user-select: none; }

das Raster tut dies für das Raster, aber nicht versuchen und tun es für den Rest Ihrer App (sollte es nicht). Das Problem ist, wie IE den Shift-Klick versteht, also glaube ich nicht, dass es ein Grid-Problem ist, am besten ist es, es zu umgehen. Es ist ziemlich Standard, Benutzer zu deaktivieren, wenn sie auf einzelnen Webseiten-Anwendungen sind, wenn sie detaillierte Anwendungen sind (was ich vermute, ist, wenn Sie AG-Grid verwenden).

+0

Es funktioniert. Ich muss nur body '{-ms-user-select: none}' hinzufügen, um diese Regel für Internet Explorer anzuwenden. – CodeMonkey

1

persönlich für die Zeilen der Auswahl (nicht Zellen!) Ziehe ich ein Kontrollkästchen am Anfang der Zeile. Und es könnte Ihr Problem mit IE lösen.

Verwenden Sie das Attribut checkboxSelection auf der Spaltendefinition, zB:

{headerName: "Athlete", field: "athlete", checkboxSelection: true}, 

Wenn Sie Reihen von Kontrollkästchen erzwingen möchten ausgewählt haben, können Sie die Eigenschaft suppressRowClickSelection in den gridOptions zu wahr gesetzt.

+0

Danke. Ja, das Kontrollkästchen löst das Problem, aber leider kann ich es nicht in meinem Projekt verwenden. Ich habe eine vorläufige Lösung gefunden und diese unten veröffentlicht. – CodeMonkey

1

Derzeit ist die Lösung zu verwenden:

$window.getSelection().removeAllRanges();

in

onRowSelected 

Zuhörer. Jedes Mal, wenn die Zeilenauswahl geändert wird, wird die Auswahl anderer Elemente in IE entfernt. Keine gute Lösung, aber besser nichts. Mozilla MDN

+0

Ist dies für Sie sofort passiert? Wenn ich diese Lösung ausprobiere, sehe ich immer noch die Auswahl an anderer Stelle auf dem Bildschirm, bevor sie entfernt wird, und es scheint ein bisschen nervtötend. – dsh

+0

@dsh Leider nicht sofort. Die falsch ausgewählten Bereiche erscheinen für kurze Zeit (100-300 ms) und verschwinden dann. Gegenwärtig habe ich keine andere Lösung gefunden: entweder Checkboxen wie Alexander Zbinden oben vorgeschlagen oder diesen "Hack". – CodeMonkey