[VB.NET] Repeater annidato in Gridview

venerdì 15 maggio 2009 - 09.42

samar Profilo | Senior Member

Ciao ragazzi,
mi sto picchiando col seguente problema, ho un repeater annidato in un gridview e sto incontrando problemi per fargli il binding, al momento ho scritto questo:

code behind

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

ho l'errore di riferimento errato nel findcontrol

markup:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

potete darmi una mano?
Grazie!

rossimarko Profilo | Guru

Ciao,

qual'è l'errore esatto che ti viene ritornato?

Penso che sia dovuto al fatto che il repeater va popolato da codice, non puoi popolarlo con lo stesso datasource della griglia (ho visto che usi container.dataitem anche all'interno del repeater ma non vedo il codice dove assegni il datasource al repeater stesso).

Di solito quando ci sono controlli annidati si fa così:
- imposti datasource al controllo padre
- nel rowdatabound del controllo padre prendi riferimento al controllo annidato (in questo caso il repeater), imposti il suoi datasource e richiami il databind del repeater
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

samar Profilo | Senior Member

L'errore generato è:
"Riferimento a un oggetto non impostato su un'istanza di oggetto." sulla riga "rpt_nested.DataSource = dtrCat"

il code behind che ho postato è inserito nel rowdatabound del gridview, scusa ma in questo modo non viene bindato via codice il repeater?

rossimarko Profilo | Guru

Scusa, non avevo capito che il codice era nel row databound.

Allora penso sia solo un problema di come prelevi l'oggetto.

Ho visto che fai un FindControl("Gw:rptAnswer"), però non serve inserire "Gw:", basta il nome del repeater: FindControl("rptAnswer"), solo che lo devi richiamare sulla riga, quindi:
e.Row.FindControl("rptAnswer")
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

samar Profilo | Senior Member

Volevo scriverlo che era nel rowdatabound ma nn l'ho messo....
è vero devo cercarlo nella riga, grande!
GRAZIE!
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5