Buongiorno a tutti.
Avrei il seguente problema.
Ho creato un datagrid in cui sfrutto l'EditItemTemplate per visualizzare il dettaglio del record.
Nell'EditItemTemplate ho inserito un controllo personalizzato (contenuto in un file .ascx) costituito da una textArea e da un datagrid.
L'idea è quella di visualizzare il dettaglio durante l'EditCommand.
Nell'ItemDataBound del datagrid principale eseguo le seguenti istruzioni:

Dim ctlScServ as SchedaServizi = e.Item.Cells(0)..FindControl("ctlScServ")
ctlScServ.SetScheda(Me.dgrdServizi.DataKeys(e.Item.ItemIndex))

che mi servirebbero per il popolamento della scheda. In pratica nella classe annessa al controllo ho inserito ho inserito una Sub che chiamata dall'esterno, ricevendo come parametro l'Id del record effettua due differenti query per recuperare i dati necessari al popolamento del controllo.
Quello che succede è che quando effettuo tale chiamata avvieme il seguente errore: "Object reference not set to an instance of an object.".
Non capisco perchè ciò possa accadere in quanto con tale tecnica popolo qualsiasi altro controllo come label, textbox, image, ecc ...

Grazie anticipatamente per l'aiuto.

Alessio Arrigoni - CONSULENTE INFORMATICO
https://www.alessioarrigoni.it
https://www.assistenzapccomo.it
l'errore è abbastanza chiaro l'istanza a cui stai facendo riferimento è nulla.

indifidua il riferimento nullo, probabilmente SchedaServizi

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
Ok d'accordo, ma mi interessa sapere se il procedimento è corretto.

Alessio Arrigoni - CONSULENTE INFORMATICO
https://www.alessioarrigoni.it
https://www.assistenzapccomo.it
direi di si, anche se in genere tento di evitare DataGrid dento Datagrid, ma solo per una questione di quantità spropositata di html generato

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
Come posso vedere se un oggetto ha un riferimento nullo in quanto sot inserendo una serie response.write. IsDbNull mi da sempree come risultato False.

Alessio Arrigoni - CONSULENTE INFORMATICO
https://www.alessioarrigoni.it
https://www.assistenzapccomo.it
SchedaServizi non sarà mai DbNull, casomai solo null.

il seguente blocco di codice:

Dim ctlScServ as SchedaServizi = e.Item.Cells(0)..FindControl("ctlScServ")
ctlScServ.SetScheda(Me.dgrdServizi.DataKeys(e.Item.ItemIndex))

lo esegui controllando se l'item che viene "bindata" è di tipo EditItem?

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
Ho fatto il controllo che mi hai detto tu. Ho quindi modificato nel seguente modo:

If e.Item.ItemType.ToString = "EditItem" then
Dim ctlScServ as SchedaServizi = e.Item.Cells(0)..FindControl("ctlScServ")
ctlScServ.SetScheda(Me.dgrdServizi.DataKeys(e.Item.ItemIndex))
End If

in modo che venga eseguito solo quando l'Item è di tipo EditItem, ma l'errore è sempre lo stesso.
La cosa che non riesco a capire è che contemporanemante durante l'ItemDataBound, adottando la stessa procedura, faccio la stessa cosa cosa su una label e funziona perfettamente.

Alessio Arrigoni - CONSULENTE INFORMATICO
https://www.alessioarrigoni.it
https://www.assistenzapccomo.it
posta la porzione di confice dove hai dichiararo il tuo UserControl, così mi chiarisco bene l'idee :)

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.