Datagrid creta a runtime e postback

venerdì 10 settembre 2004 - 15.15

l.corallini Profilo | Junior Member

ciao a tutti,

ho creato runtime una DataGrid, ho inserito un button al cui click non fa nient'altro che visualizzarne altri due.
Il problema è che con il postback mi sono perso la DataGrid creata.
Come si risolve questo problema? Ho sentito parlare del viewstate ma non so come utilizzarlo, la proprietà enableViewState della DataGrid in questione è impostata su true...[B(]

graxie

luca

l.corallini Profilo | Junior Member

ok, creo runtime il controllo datagrid che contiene dei controlli checkbox che l'utente può selezionare.
a questo punto devo però poter al click di un button recuperare quei dati, solo che la datagrid creata non viene "vista" nella sub scatenata dall'evento click del button.
come devo fare? devo forse creare dinamicamente un button? se fosse così sono punto a capo...

l.corallini Profilo | Junior Member

ti faccio un breve sunto:

in base ad alcuni parametri di ricerca visualizzo una datagrid master/detail, per ogni riga della DataGrid 'padre' creo delle DataGrid in cui creo dinamicamente delle CheckBox.
Queste devono possono essere selezionate dall'utente, che cliccando su un button conferma la scelta fatta e scatena una sub che aggiorna il DB.
il problema è quindi come poter 'leggere' la DataGrid creata dinamicamente con i valori impostati dall'utente (ovviamente se la ricarico perdo le selezioni fatte dall'utente...) senza che questa scompaia...
spero di essermi spiegato abbastanza...

grazie

p.s.
prendo per buono quello che hai postato prima?

l.corallini Profilo | Junior Member

ho provato comunque a fare come suggeritomi ma mi restiutisce questo errore:

The type 'System.Web.UI.WebControls.DataGrid' must be marked as Serializable or have a TypeConverter other than ReferenceConverter to be put in viewstate.

io ho scritto così (VB.NET):
- per impostare
viewstate("Datagrid") = dgTratte

- per recuperare e visualizzare
Dim dg As DataGrid
dg = viewstate("Datagrid")
DataGrid3.DataSource = dg
DataGrid3.DataBind()

l.corallini Profilo | Junior Member

sì credo che non si possa inserire un datagrid nel viewstate, è valido solo per tipi primitivi (boolean,integer,eccc...)

non posso inserire il dataset perchè è il controllo datagrid ed i suoi controlli annidati di cui mi serve mantenere lo stato dopo che scateno il postback cliccando su un button.

è possibile che la potenzialità di .NET si fermi davanti ai controlli creati run time? non c'è un modo per recuperare i valori impostati dall'utente in controlli run time?

grazie

l.corallini Profilo | Junior Member

con la session non mi da errori, però ho un altro problema e cioè che io creo n datagrid dinamicamente attraverso un ciclo, e le aggiungo ad ogni item della datagrid padre, per cui non so se posso recuperarle tutte, così come faccio recupero solo l'ultima creata...
e se si potesse inserire all'interno della sub che crea le grid run time, creare anche uno o più button run time e gestirne gli eventi? ovviamente non so prorpio come si possa fare...
ciao

l.corallini Profilo | Junior Member

riesco a recuperare dalla sessione il DataGrid che creo runtime, il problema è che non riesco a 'portarmi dietro' il valore delle checkbox in esso contenute e impostate dall'utente...
ad oggi ancora non ho capito come fare e soprattutto a cosa serve creare controlli dinamici se non si possono recuperare i dati dopo il postback!

grazie per l'aiuto
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5