GridView ItemTemplate

giovedì 08 aprile 2010 - 15.46

liveforever81 Profilo | Junior Member

Salve a tutti,

ho un problema e chiedo ausilio a voi massimi esperti.

Ho una GridView bindata in questo modo:

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


Dove COL_1 e COLONNA_2 vengono fuori da una query su DB e sono proprio i nomi di tale colonne lato DB.

Avrei questa necessità: inserire un'ulteriore colonna (alla fine di queste due) che mostri un imageButton se, ad esempio,
il valore dell'ItemTemplate della colonna2 sia "Pippo" (ovviamente tale nuova colonna deve avere SOLO l'itemTemplate dato che
non cambia il suo "stato" in caso di editing).
Se così fosse, come detto, appare l'imageButton cliccabile che porta ad un'altra pagina, altrimenti la cella rimane vuota...

Ho provato a gestire la cosa lato pagina aspx ma discriminare la visibilità dell'itemTemplate mi risulta impossibile.
Lato code-behind ho provato ad inserirne la logica nel metodo che "binda" la gridView con la Tabella (risultato della query sul DB)
ma non so proprio come fare...

qualcuno potrebbe aiutarmi (sia lato aspx e cha lato code-behind)?
Grazie mille!!!!

skraus Profilo | Junior Member

Aggiungi alla tua griglia una colonna Template. Nel ItemTemplate inserisci il bottone che ti serve.

Mediante la gestione dell'evento RowDataBound puoi gestire la visualizzazione o meno del bottone nella colonna template. L'evento RowDataBound si verifica ad ogni binding di ogni riga della griglia, per cui è come se fosse una iterazione.

if (e.Row.RowTipe == DataControlRowType.DataRow) { //la proprietà dataItem del Row ti fa accedere ai dati del datasource per la riga corrente DataRowView rigaCorrente = (DataRowView)e.Row.DataItem; Button bottoneCorrente = (Button)e.Row.FindControl("nome_bottone_templateField"); if (rigaCorrente["colonna2"].toString() != "Pippo") { bottoneCorrente.visible = false; { }

Ciao

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