Problemi con HyperLinkField in GridView

giovedì 16 novembre 2006 - 11.44

doh* Profilo | Newbie

Ciao,

sono nuovo del mondo Asp.net e mi occorrerebbe una mano per risolvere un problema.

Ho una gridview, nella quale è inserito un HyperLinkField. Con il metodo SelectIndexChanged, una volta che l'utente ha selezionato una riga della Gridview ho bisogno di conoscere i valori contenuti in alcune celle della riga.

Premesso che uso Vb.net

Ho dichiarato:

Dim row As GridViewRow = GridView1.SelectedRow

Dim nomeprogetto As String

e ottengo il valore contenuto nella cella così:

nomeprogetto = row.Cells(1).Text

Questo funziona correttamente per le celle normali, non funziona per quella con HyperLinkField, ottengo infatti un valore vuoto.

Potreste suggerirmi come superare questo problema?

Vi ringrazio anticipatamente

Federico

alx_81 Profilo | Guru

>Ciao,
Ciao!


>sono nuovo del mondo Asp.net e mi occorrerebbe una mano per risolvere
>un problema.
>Ho una gridview, nella quale è inserito un HyperLinkField. Con
>il metodo SelectIndexChanged, una volta che l'utente ha selezionato
>una riga della Gridview ho bisogno di conoscere i valori contenuti
>in alcune celle della riga.
>Premesso che uso Vb.net

>Ho dichiarato:
>Dim row As GridViewRow = GridView1.SelectedRow
>Dim nomeprogetto As String
>e ottengo il valore contenuto nella cella così:
>nomeprogetto = row.Cells(1).Text

>Questo funziona correttamente per le celle normali, non funziona
>per quella con HyperLinkField, ottengo infatti un valore vuoto.
>Potreste suggerirmi come superare questo problema?

Il problema sta nel fatto che le celle che tu definisci "normali", ovvero le celle che contengono solo testo, hanno al loro interno solamente sequenze di caratteri. Perciò la proprietà text di questa tipologia di celle è effettivamente valorizzata a ciò che ti serve. Per quanto riguarda le colonne HyperLinkField, il discorso è un attimino diverso. Poichè queste contengono un HyperLink, che è un CONTROLLO asp.net, hanno la proprietà Text vuota, ma hanno la collection Controls popolata proprio dal HyperLink utilizzato per creare l'effetto link. Perciò, per ottenere l'informazione "testo del link", bisogna accedere al campo tramite la collezione in questo modo:

nomeprogetto = DirectCast(row.Cells(2).Controls(0), HyperLink).Text

Con la DirectCast converto l'oggetto ricavato dalla collezione dei controlli della cella in un HyperLink e poi ne ricavo il testo. Puoi ottenere il contenuto di ogni proprietà pubblica dell'oggetto HyperLink.

>
>Vi ringrazio anticipatamente
Di nulla!


Ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino
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