20 messaggi dal 27 marzo 2003
Buongiorno a tutti,
su una gridview ho questi due hyperlinkfields:

<asp:HyperLinkField DataNavigateUrlFields="UrlVisualizzaPdf" Text="&lt;img border=&quot;0&quot; height=&quot;15&quot; alt=&quot;Scansione&quot; src=&quot;../../../immagini/Pdf.gif&quot; width=&quot;16&quot;&gt;" />

<asp:HyperLinkField DataNavigateUrlFields="UrlVisualizzaPdfScambio" Text="&lt;img border=&quot;0&quot; height=&quot;15&quot;
alt=&quot;Scansione&quot; src=&quot;../../../immagini/Pdf.gif&quot; width=&quot;16&quot;&gt;" />

Per il primo, è la stored procedure che estrae da un db i dati per la griglia, ed imposta anche l'url di pagina per il campo UrlVisualizzaPdf:
select
...
('~/web/pagine/VisualizzaPdf.aspx?Matricola=12345&Anno=2015&Mese=12) as UrlVisualizzaPdf,

invece per il secondo hyperlinkfield la stored procedure per motivi di complessità non lo imposta e vorrei quindi impostarlo successivamente da codice vb scorrendo i records della gridview.

Ho provato a definire così:
dim hlf as hyperlinkfield = GvMia.ros(idx).cells(1).findcontrol.....e poi non so come proseguire....
...per poi dirgli hlf.datanavigateurlformatstring = "~/web/pagine/Visualizz......etc.....
qualcuno mi può aiutare?
grazie,
ciao
Paola
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Paola,
puoi ottenere un riferimento al campo passando per la collezione Controls della cella.
dim hlf as HyperLink = CType(GvMia.ros(idx).cells(1).Controls(0), HyperLink)
hlf.NavigateUrl = "http://...."

Come vedi, ho estratto il primo elemento dalla collezione Controls e l'ho convertito al tipo HyperLink. Infatti le colonne HyperLinkField generato quel tipo di controllo su ogni riga.

Quando come in questo caso non sei sicura di come andare a referenziare qualcosa, puoi mettere un breakpoint per interrompere l'esecuzione in quel punto e poi usare il pannello di Visual Studio chiamato "Espressione di controllo 1" (o "Watch 1", se hai VS in inglese). Da lì puoi digitare e navigare un'espressione (es. GvMia.ros(idx).cells(1)) per capire dove potrebbe nascondersi il riferimento che ti serve.

ciao,
Moreno
Modificato da BrightSoul il 01 dicembre 2015 22.24 -

Enjoy learning and just keep making
20 messaggi dal 27 marzo 2003
Ciao,
grazie per la risposta, purtroppo però non funziona.
La mia colonna è un hyperlinkfield, non un hyperlink,
ho provato sotto debug e infatti non mi dà nulla nel navigateurl.
ho provato a sostituire nella tua istruzione l'hyperlink con hyperlinkfield (che sostanzialmente era quello che avevo provato io) ma da errore di sintassi.
Ho risolto definendo una nuova datatable nel dataset e prima di fare il binding con la griglia carico tutto in quetsa datatable e lì posso compormi il navigateurlfield.
grazie comunque,
buona giornata,
ciao
Paola
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
paolagumi ha scritto:
Ho risolto definendo una nuova datatable nel dataset e prima di fare il binding con la griglia carico tutto in quetsa datatable e lì posso compormi il navigateurlfield.

ok, bene così.

paolagumi ha scritto:

ho provato sotto debug e infatti non mi dà nulla nel navigateurl.

Ok, per il futuro ricordati sempre di usare il pannello "Espressione di controllo 1" (o "Watch 1") perché grazie a quello riesci a scoprire anche quale sia il tipo corretto da usare (HyperLinkField oppure HyperLink).

Ieri mi sono dimenticato di dire che quel codice andava messo dopo aver fatto l'invocazione a DataBind(), ma forse lo facevi già dopo.

ciao,
Moreno

Enjoy learning and just keep making
20 messaggi dal 27 marzo 2003
sì sì, lo facevo dopo il bind,
grazie
ciao

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.