Visitatori: 779
Nella scorsa lezione abbiamo aggiunto alla gridview delle News una colonna per la modifica dei dati. In questa lezione vedremo come eliminare una news sfruttando le caratteristiche avanzate del controllo gridview:
Dal menu contestuale della GridView potrete notare che tra le varie opzioni disponibili non c'è "Attiva eliminazione". Questo perchè al momento di configurare il DataSource della nostra GridView non abbiamo attivato le opzioni avanzate che consentono di generare le istruzioni di INSERT, UPDATE eDELETE dei record in modo del tutto automatico.
Quindi dal menu contestuale della GridView selezionate configura DataSource:
Lasciate inalterata la stringa di connessione che abbiamo creato nelle precedenti lezioni:
Nella schermata successiva selezionate "Avanzate..":

Selezionate l'opzione "Genera istruzioni INSERT, UPDATE e DELETE":

A questo punto andate avanti e cliccate su fine. Se visual web developer vi chiede di rigenerare le colonne per gridview cliccate su "NO".
Tuttavia poichè per attivare la generazione delle istruzioni di inserimento modifica e cancellazione abbiamo dovuto specificare nuovamente la tabella News e i campi base la nostra istruzione di SELECT viene nuovamente rigenerata e se mandate in esecuzione il progetto vi verrà restituito l'errore "CAMPO DESCRIZIONE_CATEGORIA NON TROVATO". In effetti nelle scorse lezioni avevamo aggiunto un campo calcolato per andare a ricavarci la descrizione della categoria in modo da visualizzarla nella gridview al posto dell'id_categoria. Per risolvere il problema entrate nuovamente nella configurazione del DataSource e modificate così l'istruzione di SELECT:

SELECT [ID_NEWS], [ID_CATEGORIA], (SELECT DESCRIZIONE FROM [CATEGORIES]
WHERE [CATEGORIES].[ID_CATEGORIA] = [NEWS].[ID_CATEGORIA]) AS DESCRIZIONE_CATEGORIA,
[TITOLO], [DESCRIZIONE], [DATA], [ATTIVA] FROM [NEWS]
WHERE [ID_CATEGORIA] = @ID_CATEGORIA.
Poichè abbiamo aggiunto un parametro alla query (@ID_CATEGORIA) nella schermata successiva ci verrà chiesto di impostare tale parametro. selezioniamo come origine "Controllo" e quindi la DropDownList1:

Adesso dal menu contestuale della GridView delle News dovreste vedere abilitata l'opzione "Attiva eliminazione" oltre a quelle per l'inserimento e la modifica che però nella maggior parte dei casi non vengono effettuate direttamente nella GridView ma delegate ad ulteriori pagine aspx.

Attivate quindi l'eliminazione e lanciate il progetto (può essere che la colonan con il link "elimina" venga aggiunta come prima colonna della GridView, in tal caso dal menu contestuale della GridView cliccate su modifica colonnei e spostatela come ultima colonna dalle apposite freccette di ordinamento. A tal proposito va detto che attivando uno qualsiasi dei checkbox di modifica, inserimento eliminazione verrà aggiunto alla nostra gridview una colonna di tipo CommandField per cui non vi aspettate di trovarvi una colonna "elimina" ma si chiamerà commandField e conterrà tutte le opzioni attivate. Nelle prossime lezioni vedremo come personalizzare i campi di tipo command con i TemplateField):

Cliccate su elimina e potrete constatare che la news viene effettivamente eliminata:

Lezione precedente | Indice degli articoli | Lezione successiva

|