el 2° esempio,nell'uso del TemplateField,dove sta l'associazione del campo hyperlink con il campo che contiene effettivamente il link?
Eccola qui. Uso un'espressione di binding per legare il valore del campo "LinkDelFiule" alla proprietà NavigateUrl dell'HyperLink. Posto solo il frammento di codice:
NavigateUrl=<%# Eval("LinkDelFile") %>
(in effetti nell'esempio postato ieri avevo usato "url" come nome del campo anziché "LinkDelFile", quindi penso che sia stato questo ad aver generato confusione, scusa)
Comunque,in tutti i casi,nella pratica, basta che scrivo ,nel campo del database, il percorso relativo del file che serve visualizzare, cioè una cosa tipo: "/CartellaCliente/Documento.pdf",poi, nella GridView creo il campo Hyperlink e poi,utilizzando DataNavigateUrlFields, indico il campo che contiene il link, come hai detto tu e il gioco è fatto? E' giusto?
Sì, esatto.
in molti casi,circa il percorso,ho visto invece anche l'utilizzo di DataNavigateUrlFormatString
L'utilizzo di questo attributo è opzionale. Lo puoi usare se ti occorre "completare" il link, o se il link deve essere generato dalla concatenazione di più campi.
Per ipotesi, pensa se i documenti PDF venissero spostati altrove, in un altro server raggiungibile da un altro dominio. Dovresti quindi aggiornare tutti i link da "/CartellaCliente/Documento.pdf" a "http://fileclienti.dominio.it/CartellaCliente/Documento.pdf". OPPURE, potresti lasciare intatti tutti i tuoi link e "completarli" grazie all'attributo DataNavigateUrlFormatString dell' HyperLinkField. Ecco l'esempio:
<asp:HyperLinkField Text="Apri PDF" DataNavigateUrlFormatString="http://fileclienti.dominio.it{0}" DataNavigateUrlFields="LinkDelFile" />
Quel {0} è un segnaposto che verrà sostituito con il valore di LinkDelFile. Il risultato sarà un link a http://fileclienti.dominio.it/CartellaCliente/Documento.pdf
Nota come l'attributo "DataNavigateUrlFields" sia plurale (termina con s). Vuol dire che puoi indicare anche più di un campo. Il mio link, per esempio, viene generato a partire dall'ID del cliente e dall'anno in cui si è registrato.
<asp:HyperLinkField Text="Apri PDF" DataNavigateUrlFormatString="/registrazioni/{0}/Cliente{1}.pdf" DataNavigateUrlFields="AnnoDiRegistrazione, ID" />
Nel DataNavigateUrlFields ho indicato due campi e nella DataNavigateUrlFormatString ho quindi la possibilità di usare due segnaposto: {0} e {1}, che identificano rispettivamente AnnoDiRegistrazione e ID. Il link risultante sarà una cosa tipo questa:
/registrazioni/2010/Cliente820.pdf
E in questo specifico caso non ho dovuto neanche predisporre un campo "LinkDelFile" perché mi sono potuto generare il link partendo dai valori di altri campi già esistenti.
ciao,
Modificato da BrightSoul il 13 luglio 2011 21.13 -