Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Problemi con la gestione della gridview
giovedì 02 luglio 2009 - 14.32
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
cosmopsis
Profilo
| Junior Member
74
messaggi | Data Invio:
gio 2 lug 2009 - 14:32
ciao,
sono due giorni che brancolo nel buio. Vorrei utilizzare una gridview in una pagina aspx di modo da visualizzare una tabella access 2000.
Se faccio il binding al solito modo (creo una datatable e la passo alla grid) tutto ok.
Il problema nasce dal fatto che alcuni campi della tabella sono numerici e ciascun numero significa qualcosa. Per cui dovrei sostituire questo numero con il suo significato "in chiaro". La domanda che vi faccio è questa: non trovando modo di poter gestire la gridview direttamente (es. in pseudocodice: gridview[riga][colonna] = "PIPPO" con "PIPPO" ovviamente come decidifica di un valore numerico), devo: 1. collegarmi alla tabella con un dataReader e leggere tutti i record; 2. per ciascun record letto metterlo in un datatable creato ad hoc per poi passarlo alla gridview. Vi posto parte del codice semplificato al massimo:
Dim dtTbGrid As DataTable
dtTbGrid = New DataTable()
Dim dtColGrid As DataColumn = New DataColumn()
dtTbGrid.Columns.Add("codice", Type.GetType("System.Int32"))
Dim dtRowGrid As DataRow = dtTbGrid.NewRow()
While objDataReader.Read = True
dtTbGrid.Rows.Add()
dtRowGrid("codice") = objDataReader("cnom")
End While
griView.DataSource = dtTbGrid
griView.DataBind()
Nell 'esempio salto la decodifica...
La gridview risulta composta da tante righe vuote quanti sono i campi letti dal datareader. Probabilmente sbaglio qualcosa nel ciclo While. Poterste dirmi l'eventuale errore e se il modo che ho trovato (cioé datatable formata dai record del datareader) è corretto? Oppure mi suggerite qualcos'altro?
grazie.
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
gio 2 lug 2009 - 20:29
interessante il tuo ragionamento, ma non potevi usare l'evento rowdatabound del tuo gridview?, che sarebbe quello che si esegue durante la costruzione di ogni riga del gridview, bastava fare cosi:
if e.Row.RowType = DataControlRowType.DataRow Then
valuti il valore da inserire e poi
e.Row.Cells(tuaCella).Text = Valore
end if
per quello che ho capito cosi dovresti sistemare il tutto.
facci sapere
Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio
cosmopsis
Profilo
| Junior Member
74
messaggi | Data Invio:
gio 2 lug 2009 - 23:15
beh... non l'ho usato per poca dimestichezza con le gridview.
Comunque sia ho risolto in questo modo:
'--1. creo il dataset per il binding con la gridview--
Dim dtTbGridView As DataTable = New DataTable()
Dim dtTbGridView As DataColumn = New DataColumn()
' 2. creazione campi del datatable
dtTbGridView .Columns.Add("Nr.", Type.GetType("System.Int32"))
'eccetera
'3. lettura tabella record per record--
'..apro connessione
' ..inizializzo il datareader...
While objDataReader.Read = True
Dim dtRowGridView As DataRow = dtTbGridView.NewRow()
i += 1
dtRowGridView("Nr.") = i
'eccetera
End While
'finalmente effettuo il binding
magari a qualcuno può servire.
ciao.
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
ven 3 lug 2009 - 22:29
boh!!!, magari è una strada più lunga ma l'importante è che quello che deve fare lo faccia bene, veramente ogni cervello è un universo d'idee
ben fatto!!!
Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio
cosmopsis
Profilo
| Junior Member
74
messaggi | Data Invio:
ven 3 lug 2009 - 23:53
Grazie. Che dici merita un click su accetta o no???
ciao
Torna su
Stanze Forum
Elenco Threads
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 !