Am 10.06.20 um 04:35 schrieb Maik Koenig:
> Am 07.06.2020 um 14:15 schrieb Markus Franzke:
>> Hallo.
>>
>> Hat hier jemand Erfahrung mit datatables (
cdn.datatables.net) ?
>
> Etwas... ich habe das mal für eine private Seite benutzt. Aber frag
> ruhig hier, ist ja JavaScript. Ob ich helfen kann ist ohnehin fragwürdig ;)
>
> Greetz,
> MK
>
Fein. Dann fange ich mal mit den Vorbemerkungen an.
Ich besitze eine kleine Sammlung von Hörbüchern. Dazu habe ich ein
kleines Verwaltungsscript geschrieben, das die Bearbeitung durch mehrere
Personen ermöglicht.
Zu jedem Werk existieren Informationen über Autor, Sprecher, Laufzeit,
Inhalt, was halt so bekannt ist.
Diese sind sozusagen für alle Personen (Benutzer) gültig.
Zusätzlich gibt es vier Felder (ganz unten), in denen jeder Benutzer
eigene Daten ablegen kann, wie z.B. Bewertung, Wann das letzte Mal
gehört, Wo archiviert, ... jeder, wie er will.
Die Maske ist unter
http://rudi-drahtlos.de/hb-screen.png zu sehen.
Man kann in der Tabelle nach einem Werk suchen, dann werden dessen
Informationen unten in die Felder zum Bearbeiten übernommen. Direkt in
der Tabelle wollte ich nicht editieren, vor allem deshalb, weil die
Tabellenbreite lange nicht für alle Felder ausreicht.
Sobald ich in den Eingabefeldern etwas ändere, wird ein 'dirty' Flag
gesetzt. Wenn ich das Editieren nun per ABORT abbreche, kann ich per
confirm() fragen, ob das wirklich gewünscht ist. Wunderbar.
ABER: Wenn ich im Zustand 'dirty' bin, kann ich nicht verhindern, daß
ein anderer Eintrag in der Tabelle selektiert wird. Die unten
vorgenommenen Änderungen gehen stillschweigend verloren. Ich habe schon
etliche Anläufe unternommen, um 'deselect' oder 'deselect.dt' per
Eventhandler abzufangen. Mein Eventhandler wird aktiviert, aber egal was
ich zurückliefere oder ob ich e.stopImmediatePropagation() verwende, am
Ende wird der anstehende Datensatz deaktiviert und der neue aktiviert.
Also: Wie kann ich steuern, ob 'deselect.dt' und 'select.dt' von der
Tabelle behandelt - oder von mir unterdrückt werden. Es würde auch
helfen, wenn ich einfach die Tabelle temporär auf read-only setzen
könnte, damit keine Änderung an der Selektierung möglich ist, bis ich
unten entweder mit OK oder ABORT beende.
Ich hoffe, das Problem ist klar. Die Antwort würde mein Leben sehr
versüßen. ;-)
M.