261 messaggi dal 12 maggio 2003
Salve a tutti, ho un problema con il gridview.
Ho una lista di oggetti List<Oggetto> che viene assegnata ad un GridView.
ogni riga del GridView ha un checkbox che permette di selezionare l'oggetto della riga.
Quando viene premuto un button viene effettuato un postback, e gli oggetti selezionati devono andare a riempire un'altra lista dello stesso tipo
List<Oggetto> che poi viene passata al db.

Il punto è questo: il gridView dopo il postback ha già eseguito l'UnLoad e quindi si è svuotato del datasource mantenendone la sola visualizzazione.
Ciclando le GridViewRow, la proprietà DataItem è ovviamente uguale a Null.

Usare gli Id della riga col sistema

GridView.Datakeys[row.RowIndex].value

per ottenere l'oggetto selezionato mi porterebbe ad un'accozzaglia di cicli annidati che sinceramente vorrei proprio evitare.
C'è una soluzione più pulita e performante per persistere il datasource sul GridView o perlomeno per riottenere l'oggetto collegato alla singola Row?
purtroppo no, devi fare a mano quello che automaticamente fa un xxxDataSource accoppiato con il GridView.

devi ciclare le righe e il rispettivi valori che contengono.

ma non cono un accozzaglia con massimo 2 cicli "for" fai tutto

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
261 messaggi dal 12 maggio 2003
Ho rifatto la stessa cosa usando l'ObjectDataSource, ma come faccio a persistere il binding fra i dati e il controllo?
Mi spiego meglio.
Il controllo in questione è un repeater che viene caricato con una lista di oggetti Categoria e per ogni Item c'è un GridView annidato con le sotto categorie che vengono recuperate tramite la property Categoria.SottoCategorie
nell ItemDataBound del repeater.
Quando si effettua il postback devo recuperarmi gli oggetti SottoCategoria che sono stati selezionati sul GridView. Siccome questi oggetti non hanno un ID, e i DataBoundControls non salvano nel ViewState i DataItem, come faccio?
mmm a questo punto diventa davvero macchinoso, devi recuperare dell'item del Repeater il GridView e ciclare tra le sue righe
ciao marco

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

http://nostromo.spaces.live.com/default.aspx

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.