Recuperare i valori di una GRIDVIEW con un ciclo iterativo

lunedì 24 gennaio 2011 - 19.32
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  Windows Server 2003  |  Visual Studio 2010  |  SQL Server 2008

Aragorn2004 Profilo | Newbie

Ambiente: Visual Studio 2010 - SQLEXPRESS 2008 - VB.NET

Ciao, ho caricato in una pagina all'interno di una gridview una serie di record con paginazione.

Per ogni record ho creato una text box nel quale vado a mettere un valore che leggo da un campo del db durante l'evento RowDataBound della Griglia

Ora l'utente deve modificare il valore in quella text box per ogni record.
Io vorrei con un pulsante eseguire l'update sul db.
Mi serve ciclare per tutti i record che lui sta vedendo, e che potenzialmente può modificare, fare un controllo sul valore inserito e se il controllo passa scrivo sul db.

Ho provato in questo modo ma il valore della cella è sempre il valore precedente (ciòè quello che carico io e non quello che modifica l'utente)

Sicuramente sto facendo una cavolata grande come una casa ma non riesco a sfangarla.

Dim _myText as TextBox

With Griglia
For i = 0 To .Rows.Count - 1
_myText = .Rows(i).FindControl("mytxt3")
stringa = stringa + _myText.Text.ToString()
Next

Me.txtProva.Text = stringa

End With

Grazie per il vostro tempo.

-----------

Ho risolto nel seguente modo: praticamente nell'evento LOAD impostavo il datasource per cui i controlli mi facevano vedere i valori presenti sul.
Testando il PostBack ed evitando di ricaricare il datasource, i valori vengono catturati correttamente.
Ora però mi sorge un altro problema: la paginazione.

Quale strada mi conviene seguire per memorizzare i valori per esempio della pagina 1 nel momento in cui l'utente va alla pagina 2 ?
L'idea inizialie è quella di consolidare solo al momento della pressione del tasto salva.

Grazie ancora a tutti.

ciao.





Ciao.

alx_81 Profilo | Guru

>Ho risolto nel seguente modo: praticamente nell'evento LOAD impostavo
>il datasource per cui i controlli mi facevano vedere i valori
>presenti sul.
>Testando il PostBack ed evitando di ricaricare il datasource,
>i valori vengono catturati correttamente.
ok, corretto

>Quale strada mi conviene seguire per memorizzare i valori per
>esempio della pagina 1 nel momento in cui l'utente va alla pagina 2 ?
>L'idea inizialie è quella di consolidare solo al momento della
>pressione del tasto salva.
al PageIndexChanging (http://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.gridview.pageindexchanging(v=vs.80).aspx) puoi controllare se i valori sono cambiati, salvare e poi cambiare pagina. In questo modo puoi fare in modo di salvare anche se l'utente non ha confermato. Il problema è: vuoi questo? oppure il cambio pagina annulla le modifiche? Sta tutto lì. Diciamo che il salvataggio col cambio pagina è silente ma potrebbe essere fuorviante. Quindi potresti in maniera più elegante controllare lo stato sul client. Se i dati sono cambiati (e lo controlli con js) dai una popup di richiesta conferma all'utente prima di farlo spostare alla pagina successiva.. Che ne pensi?

>Grazie ancora a tutti.
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

Aragorn2004 Profilo | Newbie

Si il tuo approccio è anche il mio. Non mi piace che l'utente non sia partecipe al salvataggio dei dati.
Magari ha sbagliato e non vuole confermare.

Grazie ancora.

Ciao.
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5