8 messaggi dal 12 ottobre 2005
Leggendo un database sono in grado di visualizzare i diversi record di una tabella in una forma tabellare (ogni riga <TR> un record, ogni colonna <TD> un campo).
Aggiungendo alla fine di ogni riga <TR> un singolo pulsante con un link ad una specifica pagina sono in grado di cancellare il singolo record del database. Fino qui tutto OK.
Se però aggiungessi un check box ad ogni riga <TR> potrei selezionarlo o meno. E poi un unico pulsante CANCELLA potrebbe cancellare tutti i record selezionati contemporaneamente.
Come potrei implementare questa più comoda soluzione ?
Grazie per l'attenzione.

Marca37
497 messaggi dal 08 febbraio 2009
Ciao Marca.

Spesso applico la modalità che proponi: una griglia con le righe selezionabili (checkbox) e quindi un pulsante "cancella" che le elimina tutte.

Di norma gli step con cui lavoro son sempre gli stessi (non so se siano i migliori, però funzionano):
- Il servizio che estrae le righe che compongono la tabella estrae anche la chiave primaria dei record
- Tengo in memoria un array di chiavi primarie che si popola sulla base delle righe selezionate (spesso la chiave primaria è un numero privo di significato, quindi nella griglia non si vede)
- Alla pressione del pulsante "Elimina" chiamo una API che accetta l'array e cancella tutti gli elementi dalla tabella

L'unica cosa un po' particolare e che dipende dal sistema è cosa fare se anche un solo elemento della tabella non è cancellabile, magari perchè viola una referenza.

In linea di massima, se l'applicazione si appoggia ad un database, vado di transazioni e lascio la logica: o si cancella tutto, oppure non si cancella nulla.

Quando questo non è possibile, il metodo di cancellazione prova a cancellare tutti gli elementi e torna un array con i soli elementi che hanno creato problemi. In questo modo:
- Se tutto va bene, la risposta è un array vuoto (lo preferisco al null, ma la sostanza è la stessa)
- Se qualcosa non va bene, nella risposta ci sono gli elementi che hanno creato problemi e il client può gestirli come preferisce


Spero di esserti stato d'aiuto

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.