Problema con RowCreated

venerdì 23 gennaio 2009 - 13.04

Gemini Profilo | Expert

Ciao a tutti,
ho inserito in un gridview il seguente template:
<asp:TemplateField>
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<asp:Image ImageUrl="immagini/confirm.png" runat="server" ID="imgConferma" runat="server" />
</ItemTemplate>
</asp:TemplateField>

Al momento della creazione del gridview vorrei accedere all'immagine per poter aggiungere un attributo e leggere alcuni campi letti dal db.
Come faccio ad accedere all'immagine e ai campi letti nel db?
Ho provato così:
protected void grwRisultato_RowCreated(object sender, GridViewRowEventArgs e)
{
GridViewRow row = (GridViewRow)e.Row.DataItem;
Image imgConferma = (Image)e.Row.FindControl("imgConferma");
imgConferma.Attributes.Add("onclick", "ClipTo('" + DataBinder.Eval(e.Row.DataItem, "nome") + " " + DataBinder.Eval(e.Row.DataItem, "cognome") + "','" + DataBinder.Eval(e.Row.DataItem, "id_utente") + "')");
}

ma ricevo null.
Grazie mille

paoval72 Profilo | Senior Member

Ciao. Mancano alcune condizioni:
Nell'Html hai inserito un Header, che, anche se vuoto, verrà interpretato come una riga (di titolo) in più
Di solito io uso il RowDataBound, ma funziona anche il RowCreated.
Prima però devi controllare che ci sia almeno una riga di dati, altrimenti il gridview non verrà creato.
Poi, nell'evento scelto (RowdataBound o RowCreated), devi escludere la riga di header, che non ha nulla e quindi restituirà sempre un Image = null
Il tutto diventa quindi:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Spero che ora funzioni!
Un saluto,
Paolo

Gemini Profilo | Expert

Perfetto!
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5