Problema: Riferimento a un oggetto non impostato su un'istanza di ogge...

giovedì 22 ottobre 2009 - 11.36

cispolo.ppl Profilo | Senior Member

Salve a tutti ragazzi! Il problema in oggetto l'ho risolto più volte, ma questa volta non so dove sbattere la testa.
Il mio progetto è un forum fatto interamente da me come questo qui di dotnethell, basato su MSSQL.
La pagine in questione è quella della discussione dove vengono visualizzati tutti i messaggi ed in ognuno di questi ci sono i tasti rispondi e modifica. Al caricamento della pagina se l'utente è connesso i tasti dovrebbero venir visualizzati. Ma questo non accade per via dell'errore, infatti se non accedo come utente registrato, la pagina viene caricata correttamente.
Grazie a tutti x le risposte
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Massimo

Gluck74 Profilo | Guru

> If nomeutente.Text = User.Identity.Name() Then

User.Identity.Name
è una proprietà, non un metodo, quindi togli le parentesi.

ciao ciao

cispolo.ppl Profilo | Senior Member

Ho cliccato accetta per sbaglio...infatti non funziona ancora.
Massimo

Gluck74 Profilo | Guru

almeno dicci in quale riga c'è l'errore......

comunque questa mi pare sbagliata:
DirectCast(FindControl("GridView1:username"), Label)

username è una label all'interno del gridview?
magari mi sbaglio ma una sintassi del tipo GridView1:username non l'ho mai vista

cispolo.ppl Profilo | Senior Member

se sapessi dov'è l'errore non avrei aggiunto un thread.
gridview:username l'ho messo perchè ha sempre funzionato nelle altre pagine in cui l'ho messo. Se hai una versione migliorata ne sarei molto contento.
Non vorrei che il codice di Page_load venga eseguito prima del caricamento totale della pagina

Gluck74 Profilo | Guru

mi sembra strano che non ti dica la riga di errore. metti un breackpoint, vedi dove si schianta prima

Gluck74 Profilo | Guru

mi sembra strano che non ti dica la riga di errore. metti un breackpoint, vedi dove si schianta prima

comunque sia credo che tu debba spostare la funzione dentro GridView1_RowCreated, altrimenti non hai accesso ai controlli del gridview.
e comunque sia la sintassi GridView1:Label1 io non riesco proprio a farla funzionare.

stiamo parlando di normali pagine asp.net 2.0?

cispolo.ppl Profilo | Senior Member

Normale aspx 2. Generalmente cosa utilizzi x cercare un controllo all'interno di una pagina?
Massimo

Gluck74 Profilo | Guru

uso il findControl, ma questo funziona solo per controlli "liberi" nella pagina.
Se devi cercare un controllo all'interno di un gridView, devi farlo nell'evento Row_Created:
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { Button mybtn = (Button)e.Row.FindControl("<IdBottone>"); if (mybtn != null) //codice } }

cispolo.ppl Profilo | Senior Member

ho utilizzato il tuo "cerca controllo", ma non è cambiato niente. Ti posto tutto:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Massimo

Gluck74 Profilo | Guru

dove stanno questi controlli?
uno per ogni riga? racchiudi il codice in
if (e.Row.RowType == DataControlRowType.DataRow)

nel footer della griglia? facchiudi in
if (e.Row.RowType == DataControlRowType.Footer)


e importante che mitti, come ti avevo già scritto, questo controllo
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