Altro problema riccorrente del forum.
Capita a volte di non riuscire ad aggiornare un database (o comunque la fonte dati) tramite datagrid.
Poniamo che questo sia il vostro evento Page_Load
codice:
Sub Page_Load(Obj as Object, e as Eventargs)
'codice per popolare il datagrid
End Sub
Ogni qualvolta rimadate la pagina al server(PostBeck), ad esempio con l'evento UpdateCommand del datagrid, il framework prima di eseguire il codice relativo al metodo che ha richiamato il postbeck(in questo caso il metodoOnUpdateCommand del Datagrid) esegue il Page_Load e quindi il codice che popola il Datagrid.
Pertanto ciò che è stato scritto dall'utente all'interno del datagrid viene sostituito dai dati prelevati dal database(o comunque il datasource del datagrid)
Per evitare ciò basta indicare alla pagina che deve esguire il codice che popola il datagrid solo quando la pagina viene caricata per la prima volta. In questo modo:
codice:
Sub Page_Load(Obj as Object, e as Eventargs)
If not page.IsPostBack Then
'codice per popolare il datagrid
End If
End Sub
Attenzione a non cofondere PostBack con Refresh(Tasto F5). Ad ogni Refresh e come se la pagina fosse caricata per la prima volta