DATAGRID

venerdì 12 settembre 2003 - 18.14

1234 Profilo | Newbie

Ho aggiunto in un dataGrid una colonna Button Edit, Update, Cancel: quando vado in Edit e faccio le modifiche, vorrei poi salvare le modifiche cliccando sull'Update visualizzato nella colonna di tipo Button.

Sono riuscita ad implementare il metodo private void ActivityGrid_OnUpdateCommand(Object sender, DataGridCommandEventArgs e) nel mio codebehind ma il problema è il seguente:

i campi che ho modificato in fase di Edit nel DataGrid vorrei salvarli in altri variabili e ricaricare quindi il DataGrid: come posso fare?
oppure ancora meglio, è possibile salvare tutto il record che ho modificato nel DataGrid?

Grazie per l'aiuto.

Admin Profilo | Junior Member

mmhh... vediamo se ho capito bene.

Tu crei la datagrid a partire da dei dati in DB, tramite il databind... poi quando l'utente va in edit, modifica i campi della riga selezionata, e preme su "update" vuoi che i dati inseriti dall'utente vengano visualizzati nella griglia sovrascrivendo quelli vecchi... senza però modificare la sorgente dati utilizzata per creare la griglia ?

Ciao

Stefano Giannone [MCP .NET]

1234 Profilo | Newbie

Scusa, forse ho trovato quello che cercavo ma ora ho un altro problema...

Quando sono in modalità di Edit del DataGrid e clicco sul link Update per aggiornare, la prima cosa che vengono verificati sono dei campi TextBox che ho definito FUORI dal DataGrid e che presentano un RequiredFieldValidator e quindi il postback non funziona, si blocca subito a livello di Client.

Come posso risolvere il problema? Preciso che i campi TextBox fuori dal DataGrid non possono essere inizializzati e la componente RequiredFieldValidator è fondamentale per la funzione di insert che parte da un control Button, sempre fuori dal DataGrid.

Grazie...

Admin Profilo | Junior Member

è un problema piuttosto noto e fastidioso. Ho chiesto svariate volte a gente che lavora in Microsoft se ci fosse un modo per isolare i vari gruppi di validators, in maniera tale che non interferiscano tra loro, senza ricevere mai una risposta chiara.

E' in cantiere un articolo su questa problematica, che conto di poter pubblicare nel più breve tempo possibile qui su dotNetHell.it ... pertanto, tieniti informata visitando periodicamente la sezione web applications del nostro sito.

Nel frattempo puoi ovviare al problema in questo modo:

puoi impostare la proprietà CausesValidation su false del bottone (o linkbutton) di Update.
Per far ciò devi però aggiungere manualmente le colonne nella datagrid. Tu usi l'autogeneratecolumns nella datagrid ?
Se è sì, dovresti disabilitarla ed aggiungere una template column con i tuoi bottoni (o linkbutton), in cui imposterai i vari CommandName su "edit" , "cancel" e "update", nell'edititemtemplate della colonna.
In questa maniera puoi impostare direttamente da html la CausesValidation su false per i tre bottoni.

Questo farà si che al click sui tre bottoni non venga scatenata la validazione della pagina, risolvendo il tuo problema.

Spero di esser stato chiaro, e utile.

Ciao

Stefano Giannone [MCP .NET]

1234 Profilo | Newbie

Il mio DataGrid ora è incasinato a causa mia... ecco i passi che ho fatto e la situazione attuale:

1. il DataGrid non viene caricato in modo automatico ma con delle colonne Template: tutti i valori provengono da una StoredProcedure richiamata.
2. Inizialmente l'ultima colonna presentava dei bottoni (colonna Template) con il paramatro CausesValidation = False e tutto funzionava a meraviglia: le funzionalità dei bottoni erano di Edit, Delete, Update e Cancel
3. in seguito ho dovuto modificare una cosa importante: i dati caricati nel DataGrid fanno parte di una CollectionBase composta da oggetti Attività: il caricamento funziona e la chiave del DataGrid ora è l'indice della mia CollectionBase (non più la chiave della tabella su banca dati). A questo punto i bottoni di edit, delete, update e cancel non funzionavano più
4. Scopro quindi che il DataGrid offre una colonna Button con le funzioni subito sopra elencate (eccetto per il delete), allora la implemento: l'Edit funziona, l'Update è in fase di correzione in quanto presenta ancora l'intercettamento dei Validator fuori dal DataGrid e altri prolemi

Quindi ora sono ferma: purtroppo non posso rinunciare alla CollectionBase perchè è un elemento che mi aiuta (in teoria... in pratica sto ancora valutando) a limitare il numero di query da lanciare sul DBMS.

Non pretendo che tu mi possa aiutare... mi sono incasinata da sola e ora mi devo arrangiare... purtroppo qui dove lavoro io non c'è nessuno che mi può aiutare... ed ho pure un termine di consegna... aiuto!! Se fosse solo l'applicativo da consegnare, non era un problema... purtroppo devo consegnare anche un sacco di documentazione.... forse devo cambiare lavoro :)

PS. terrò d'occhio i tuoi articoli su ASP .NET

Grazie 1000 ;)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5