Vlori statici GridView

venerdì 26 settembre 2008 - 09.53

guli Profilo | Junior Member

ciao....non so come si inseriscono dei valori sul GridView a mano, senza prenderli da un DB, ma dei valori statici.....

grazie anticipatamente e ciaoo

rossimarko Profilo | Guru

Ciao,

devi aggiungerli ad altri già esistenti oppure la griglia è vuota?
Puoi sempre crearti una collection o una datatable con i dati che ti interessano e passarlo come datasource alla griglia
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

guli Profilo | Junior Member

allora delle colonne i volori sono presi dal db, altre le devo popolare io staticamnete...

rossimarko Profilo | Guru

Se stai usando la datatable puoi sempre modificare i dati al suo interno prima di usarla come datasource della griglia.
In alternativa puoi creare dei template field all'interno del gridview e poi popolarli durante il databind della griglia. C'è un evento RowDataBound (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx) che viene scatenato ogni volta che viene popolata una riga.

Tu che operazioni devi fare sul gridview? E' in sola lettura o anche in editing?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

guli Profilo | Junior Member

in sola lettura...
ho scritto questo pezzo di codice in vb, solo che i dati li mette nella colonna esatta ma nella riga sbagliata..(dt è un DataTable)

Dim dtrRiga As DataRow = dt.NewRow()
dtrRiga("descriptor") = "Indice nuovo"

pultroppo in ogni riga devo inserire una stringa differente!!

balfaz Profilo | Expert

a questo punto ti conviene intevenire nell'evento rowdatabound e usando il e.row.rowtype, in questa maniera riuscirai a lavorare solo con le righe dei dati

"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."

rossimarko Profilo | Guru

>ho scritto questo pezzo di codice in vb, solo che i dati li mette nella colonna esatta ma nella riga sbagliata..(dt è un DataTable)
>Dim dtrRiga As DataRow = dt.NewRow()
>dtrRiga("descriptor") = "Indice nuovo"
>pultroppo in ogni riga devo inserire una stringa differente!!

Per modificare le righe già presenti sul datatable puoi fare un ciclo sulla collection delle rows:

For Each dtrRiga As DataRow In dt.Rows
dtrRiga("descriptor") = "pippo"
Next


-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

guli Profilo | Junior Member

si così va bene..ma se in ogni riga della colonna descriptor voglio inserire stringhe diverse come posso fare?? Perchè così facendo inserisce sempre pippo...
Io voglio inserire pippo,pluto,paparino...

Grazieeeeeee

rossimarko Profilo | Guru

Dipende dalla logica con cui vuoi farlo.. Ti serve un indice per ogni riga? In quel caso puoi fare:

Dim iIndex As Integer = 0 For Each dtrRiga As DataRow In dt.Rows dtrRiga("descriptor") = String.Format("Indice {0}", iIndex) iIndex += 1 Next

oppure usare un ciclo for normale:

For i As Integer = 0 To dt.Rows.Count - 1 dt.Rows(i)("descriptor") = String.Format("Indice {0}", i) Next
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

guli Profilo | Junior Member

cioè vorrei ke alla riga 1 come valore mette pluto, alla riga 2 paparino..ecc...valori sempre diversi nelle righe....

grazie

rossimarko Profilo | Guru

Scusami ma non riesco a capire la logica con cui devi mettere pippo alla riga 1 e paparino alla riga 2.. E' una cosa fissa? Quante potranno essere le righe?
Perchè il metodo più rapido che hai è gestire il valore in base all'indice

For i As Integer = 0 To dt.Rows.Count - 1 Dim str As String = String.Empty Select Case i Case 0 str = "pippo" Case 1 str = "paperino" End Select dt.Rows(i)("descriptor") = str Next

però non è una scelta molto valida se le righe non sono fisse. Avrebbe più senso configurare i valori da database.

Inoltre se le righe sono molte ha più senso utilizzare l'evento rowdatabound o fare arrivare i valori già pronti da database perchè comunque questa soluzione comporta un ciclo in più che si può evitare.
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

guli Profilo | Junior Member

noo..le righe sono fisse.....quindi il metodo ora da te inserito va bene...grazie di tutto , 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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5