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 1.0/1.1
ASP.net problema con datagrid BoundColumn
mercoledì 17 novembre 2004 - 11.40
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Alibomaye
Profilo
| Newbie
4
messaggi | Data Invio:
mer 17 nov 2004 - 11:40
ho il seguente problema
in una pagina web ho inserito un datagrid a cui aggiungo dinamicamente delle colonne
1° carico il Dataset
2° scorro la tabella prelevandola dal dataset
For A = 0 To Ds.Tables("Molecole").Columns.Count - 1
Dim Ncol As New BoundColumn
Ncol.DataField = Ds.Tables("Molecole").Columns.Item(A).ColumnName()
'setto le proprietà itemstyle della colonna
Ncol = Set_PropColumn(A, Ncol)
'aggiungo la nuova colonna
Dtg.Columns.Add(Ncol)
Next
tutto sembra funzionare correttamente in quanto visualizzo i dati nel datagrid
ma quando vado a leggerli all'interno della stessa mi ritorna un errore
infatti è come se il datagrid avesse perso i dati pur mostrandomeli
non riesco a capire dove sbaglio
spero di essere stato chiaro
ciao
Luigi
Alibomaye
Profilo
| Newbie
4
messaggi | Data Invio:
mer 17 nov 2004 - 15:49
>All'interno dell stessa pagina? quando fai questa operazione?
Si
>o salvi il datatable da qualche parte tipo cache o session oppure ad ogni postback devi recuperarti di nuovo >i dati
No
quello che non mi spiego è che se tramite il generatore proprietà del datagrid imposto manualmente i campi datafield tutto funziona correttamente, mentre se creo le colonne in modo dinamico non funzione
la cosa mi sembra molto strana e penso di non impostare una proprietà
Luigi
Alibomaye
Profilo
| Newbie
4
messaggi | Data Invio:
gio 18 nov 2004 - 08:12
>riscrivi tutte le operazioni che fai altrimenti non riusciamo a capire
Ok
in questa pagina l'utente seleziona il tipo di visualizzazione, che possono essere diverse
esempio Elenco Molecole, Elenco Principi Attivi ecc..
quindi ho una listbox che elenca tutte le scelte possibili
l'idea è di creare in questa stessa pagine un unico datagrid, e in base alla scelta dell'utente visualizzare i dati relativi
le informazioni da presentare nel datagrid sono diverse qualora venisse scelta la visualizzazione delle molecole anzichè quella dei principi attivi.
quindi ho preparato un datagrid con una unica colonna pulsante seleziona
carico il dataset con i dati relativi alla scelta di che si vuole elencare "Molecole oppure Principi attivi"
creo le colonne nel datagrid e assegno la proprietà datafield in questo modo
............
.............
Da.Fill(Ds, "Molecole")
'eseguo un ciclo sul datatable per prendere i nomi delle colonne
For A = 0 To Ds.Tables("Molecole").Columns.Count - 1
'prelevo il nome del colonna dal datatable
Dim Nomecolonna As String = Ds.Tables("Molecole").Columns.Item(A).ColumnName
creo la colonna
Dim Ncol As New BoundColumn
assegno la proprietà datafield
Ncol.DataField = Nomecolonna
setto l' ItemStyle della colonna tramite questa funzione
Ncol = Set_PropColumn(A, Ncol)
aggiungo la colonna al datagrid
Dtg.Columns.Add(Ncol)
Next
Dtg.DataSource = Ds.Tables("Molecole").DefaultView
Dtg.DataBind()
credo che il codice riportato sia corretto ed infatti visualizzo correttamente i dati nel datagrid
sia che venga scelta la prima visualizzazione "Molecole" che la seconda "Principi Attivi"
l'utente tramite il tasto selezione del datagrid può visualizzare ulteriori dettagli in base al record scelto
ed è qui che sorge il problema
quando premo sul tasto seleziona, di un determinato record la griglia sembra vuota
questo succede solo impostando via codice la priprietà datafield della colonna
per prova ho impostato manualmente tramite il generatore di proprietà del datagrid
le colonne e il datafield
e in questo caso non ho nessun inconveniente
per ovvieare a questo problema esistono diverse soluzioni più o meno eleganti
ma vorrei capire il motivo di quello che a me sembra una anomalia
cioè se creo manualmente le colonne del datagrid
assegnando a tutte la proprietà datafield funziona tutto correttamante
e posso eseguire tutte le operazioni che ho scritto in precedenza
invece creando le colonne via codice perdo al primo postback la proprietà datafield
è come se la proprietà datafield non fosse resa persistente quando viene assegnata via codice
spero di essere stato + chiaro
grazie
ciao
Luigi
Alibomaye
Profilo
| Newbie
4
messaggi | Data Invio:
gio 18 nov 2004 - 11:16
Ok
Grazie di cuore
Buon lavoro
Luigi
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 !