Condividi tramite


Modifica dei dati in un controllo server Web GridView

Aggiornamento: novembre 2007

Nel controllo GridView è incorporata una funzionalità per consentire agli utenti di modificare o eliminare record senza richiedere attività di programmazione. È possibile personalizzare la funzionalità di modifica o eliminazione del controllo GridView utilizzando eventi e modelli.

Attivazione della funzionalità di modifica incorporata

La funzionalità di modifica o eliminazione incorporata del controllo GridView può essere attivata in uno dei seguenti modi:

Utilizzo della funzionalità di modifica nel controllo GridView

Il controllo GridView può visualizzare un'interfaccia utente per consentire agli utenti di modificare il contenuto di singole righe. In genere una griglia modificabile contiene una colonna con un pulsante o un collegamento su cui gli utenti possono fare clic per impostare la modalità di modifica per la riga. Per impostazione predefinita, il nome del pulsante è "Edit".

Quando un utente salva delle modifiche, queste vengono passate, insieme alle informazioni della chiave primaria, dal controllo GridView al controllo origine dati, identificato dalla proprietà DataSourceID, che richiama l'operazione di aggiornamento appropriata. Ad esempio, il controllo SqlDataSource esegue un'istruzione SQL Update utilizzando i dati modificati come valori di parametro. Il controllo ObjectDataSource chiama il proprio metodo di aggiornamento, passando le modifiche come parametri della chiamata al metodo.

Il controllo GridView passa i valori all'origine dati per un'operazione di aggiornamento o eliminazione in tre insiemi di dizionari: Keys , NewValues e OldValues. È possibile accedere a ciascun dizionario utilizzando gli argomenti passati agli eventi di aggiornamento o eliminazione del controllo GridView.

Il dizionario Keys contiene i nomi e i valori di campi che identificano in modo univoco il record da aggiornare o eliminare e contengono sempre i valori originali dei campi delle chiavi. Per specificare quali campi vengono inseriti nel dizionario Keys, impostare la proprietà DataKeyNames su un elenco delimitato da virgole di nomi di campo che rappresentano la chiave primaria dei dati. Nell'insieme DataKeys vengono automaticamente inseriti i valori associati ai campi specificati per la proprietà DataKeyNames.

Nota:

I valori originali della chiave primaria per i campi specificati nella proprietà DataKeyNames vengono archiviati nello stato di visualizzazione. Se i valori della chiave primaria contengono informazioni riservate, si consiglia di crittografare il contenuto dello stato di visualizzazione impostando la proprietà ViewStateEncryptionMode della pagina su Always.

Il dizionario NewValues contiene i valori correnti ottenuti dai controlli di input nella riga modificata. Il dizionario OldValues contiene tutti i valori originali dei campi, tranne quelli delle chiavi, che sono inclusi nel dizionario Keys.

Il controllo origine dati utilizza i valori contenuti nei dizionari Keys, NewValues e OldValues come parametri per il comando di aggiornamento o eliminazione. Per informazioni sulla modalità di creazione dei parametri di controllo origine dati in base ai dizionari creati per i valori associati, vedere Come un controllo origine dati crea parametri per campi associati a dati.

È possibile esaminare o personalizzare il contenuto di questi dizionari prima che vengano passati all'origine dati mediante la gestione degli eventi RowUpdating o RowDeleting. Al termine dell'aggiornamento o dell'eliminazione, il controllo GridView genera rispettivamente l'evento RowUpdated o RowDeleted. Questi eventi consentono di eseguire la logica post-query, ad esempio i controlli di integrità.

Al termine dell'aggiornamento o dell'eliminazione e quando tutti gli eventi sono stati generati, il controllo GridView esegue nuovamente l'associazione al controllo origine dati per visualizzare i dati aggiornati.

Nota:

I valori originali per i campi aggiornabili di un controllo GridView sono archiviati in ViewState. Se la proprietà ViewState è disabilitata in una pagina ASP.NET che include un controllo GridView aggiornabile, i controlli della concorrenza ottimistica non possono utilizzare i valori originali per i campi aggiornabili e i campi chiave primaria che erano stati recuperati in occasione della prima associazione del controllo GridView all'origine dati. Quando la pagina esegue il post back per eseguire un aggiornamento o un'eliminazione, i valori correnti del database vengono recuperati come valori originali per i campi aggiornabili e i campi chiave primaria del controllo GridView, perché non vi sono valori archiviati in ViewState. L'operazione di aggiornamento o eliminazione viene quindi eseguita utilizzando questi valori originali. Se i valori originali sono cambiati rispetto alla prima compilazione del controllo GridView, l'operazione di aggiornamento o eliminazione verrà eseguita, ma il controllo della concorrenza ottimistica non segnalerà un errore, diversamente da quanto previsto.

Personalizzazione delle interfacce utente di modifica nel controllo GridView

È possibile personalizzare gli elementi dell'interfaccia utente per le operazioni di modifica, ad esempio il tipo di controllo visualizzato in modalità di modifica per ciascun campo dati. L'associazione dati bidirezionale automatica consente al controllo personalizzato di fornire i valori modificabili e modificati, da e verso l'archivio dati.

Nota:

Se si cambia l'istruzione Update in un controllo origine dati oppure si modifica la disposizione delle colonne nel controllo GridView, assicurarsi sempre che i valori passati dal controllo GridView all'origine dati corrispondano alla configurazione dell'origine dati corrispondente.

Vedere anche

Concetti

Cenni preliminari sui controlli origine dati

Riferimenti

Cenni preliminari sul controllo server Web GridView