Web controls e viewstate

mercoledì 10 agosto 2005 - 11.48

PEPE Profilo | Senior Member

Salve,
ho un piccolo problema da risolvere.

Ho creato in una pagina asp net una taballa dichiarando solamente la taballa stessa senza righe ne colonne
es: <asp:table id=miatabella runat=server></asp:table>

ora tramite una classe mi dichiaro via codice, in base ad alcuni parameri contenuti in un database, le righe e le colonne della tabella e nel code behind della pagina banalmente aggiundo la riga alla tanella utilizzando il metodo add.
miatabella.Rows.Add(miariga)
la riga era gia stata riempita tramite una funzione.

Tutto sembra funzionare correttamente infatti quando apro la pagina la tabella mi is visualizza correttamente con gli elementi caricati, ma appena la pagina riceve un postback il contenuto della tabella si perde. Io credo che questo sia docuto al fatto che webcontrols inseriti in una pagina tramite codice non siano conservati nel viewstate anche se il controllo padre e' stato creato (nel mio caso la tabella).
Ho provato allora a forzare il viewstate con il nuovo contenuto facendo in questo modo
viewstate("miatabella")= miatabella

Il compilatore mi da un errore
Il tipo 'System.Web.UI.WebControls.Table' deve essere contrassegnato come Serializable o avere un TypeConverter diverso da ReferenceConverter da mettere in ViewState.

Conclusione: no finito le idee :D:D.

LudovicoVan Profilo | Junior Member

Ciao PEPE,

pescato dall'help per "Table Web Server Control":

>> Note Programmatic additions or modifications to a table row or cell will not persist across posts to the server. Table rows and cells are controls of their own, not properties of the Table control. Changes to table rows or cells must be reconstructed after each post to the server. If substantial modifications are expected, use the DataList or DataGrid controls instead of the Table control.

In pratica, o ripopoli la Table ad ogni postback, oppure usi un DataGrid.

Ciao. -LV

(Peace X Love] = [1)

PEPE Profilo | Senior Member

uff.. che sfiga!!! vaqbbe grazie 1000 per la tua risposta.
Almeno ora so che non si puo' fare :D.

Ciao,
Luca.



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