36 messaggi dal 07 febbraio 2006
Ciao ragazzi.
Volevo chiedervi suggerimenti al riguardo di una situazione in cui mi trovo: in pratica ho una table con runat=server che all'apertura della pagina è vuota e poi devono essere aggiunte le righe dinamicamente in base a dei dati inseriti dall'utente. Alla fine dell'interazione cliccando su un button devo inviare i dati al database seguendo la mia procedura.

Il mio problema è che nell'aggiungere le righe alla table ho preferito usare JavaScript, il quale mi permette di velocizzare l'interazione evitando i postback e quindi alleggerendo il server; però quando poi, al click del button, devo recuperare i dati dalla table non mi ritrova niente perchè con il postback la table viene azzerata. Ho provato anche a settare il ViewState ma il problema permane, come potrei risolvere questo problema?

Io avevo anche pensato di evitare JavaScript e utilizzare solo Asp.net per aggiungere le righe alla table, ma anche in questo caso tra i postback come faccio a ricordare i dati della tabella per evitare che venga azzerata?
visto che ormai hai già buona parte del codice in javascript, continua con questo.

i valori li puoi memorizzare in un campo nascosto che puoi comodamente recuperare lato server

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
alexangel wrote:
Io avevo anche pensato di evitare JavaScript e utilizzare solo Asp.net per aggiungere le righe alla table, ma anche in questo caso tra i postback come faccio a ricordare i dati della tabella per evitare che venga azzerata?

a parte quanto dice marco, prova ASP.NET AJAX (http://ajax.aspitalia.com/) il problema di questa tecnica è che lato client ti pare tutto "normale", ma continua a lavorare lato server. il che ti da' anche il vantaggio che c'è il viewstate e quindi puoi recuperare i valori più facilmente.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
36 messaggi dal 07 febbraio 2006
Ho preso in considerazione i vostri suggerimenti in merito al mio problema, ma speravo ci potesse essere un metodo meno complesso: ad esempio a me interessa tutto il contenuto della table in modo da gestirlo tramite un DataTable, il che è difficile da realizzare con l'uso dei campi di tipo hidden; la soluzione ajax è sicuramente interessante ma non so se mi conviene inserirla nel mio progetto.
Piuttosto mi chiedevo se potevo usare il ViewState per salvare oggetti creati tramite codice Asp.Net, come ad esempio un oggetto DataTable?
alexangel wrote:
Piuttosto mi chiedevo se potevo usare il ViewState per salvare oggetti creati tramite codice Asp.Net, come ad esempio un oggetto DataTable?

sì, ma non è affatto una soluzione sensata, imho, perchè un dataset in ViewState occupa molto spazio e perchè, alla fine, è meglio usare ASP.NET AJAX se non è davvero un problema fare un po' di traffico in più tra client e server (come farebbe l'uso del ViewState), considerati gli enormi benefici ed il modello di sviluppo che ti consente di utilizzare.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
3.165 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

Daniele ti ha dato i migliori consigli. Io ti dico che in quel modo ho implemntato in breve tempo e facilmente.

1. definisco una classe che rappresenta la riga della tabella 2. Definisco una lista generica che contiene la classe appena create 3. definisco un repeater che mi genera la griglia
4. alla pressione del bottone di aggiunta istanzio un nuovo oggetto della classe di cui sopra e poi lo aggiungo alla lista sempre di cui sopra.
5. faccio il databind al repeater e mi vedo i miei nuovi dati aggiunti in fondo.
6. Salvo la lista nel viewstate così è sempre li bella pronta per essere usata e soprattuto non occupa tanto quantoun datatable (per intenderci in certi casi anche meno della metà)

HTH
.

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
36 messaggi dal 07 febbraio 2006
sm15455 ha scritto:
Io ti dico che in quel modo ho implemntato in breve tempo e facilmente.
.



Ok...ho capito cosa intendi!
non mi sono chiare solo alcune cose:

- nel passo 2 come e dove definisci la lista generica?
- nel passo 6 come salvi la lista generica nel ViewState?

Grazie a tutti!
3.165 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

la lista generica la definisci nella pagina List<Classe> lista = new Lista<Classe>():

nel Viewstate la metti così ViewState["LISTA"] = lista;

HTH
.

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.