Rendere link un campo di un DataGridView

domenica 29 luglio 2007 - 18.35

mikon Profilo | Newbie

Ciao, sono alle prime armi con VB2005 express ed ho un problema
con i DataGridView.

Allora...all'apertura del mio programma, tramite l'evento Load, mi si
riempie un DataGridView1 presente in una Form1.
Il codice che ho utilizzato e' il seguente:

Dim connessione As New SqlConnection("...")
connessione.Open()
Dim stringaquery As String = "SELECT nome,cognome FROM dbo.anagrafiche;"
Dim comando As New SqlCommand(stringaquery, connessione)
Dim da As New SqlDataAdapter
Dim ds As New DataSet
da.SelectCommand = comando
da.Fill(ds, "miatab")
DataGridView1.DataSource = ds
DataGridView1.DataMember = "miatab"
connessione.Close()

Il tutto funziona bene, ed il datagridview si riempie con i dati
presenti nel database.
Adesso vorrei che la colonna con i cognomi fosse linkabile; in modo
che cliccando su ogni cognome posso eseguire una nuova query per ottenere
informazioni piu' dettagliate sul cognome cliccato.

Come si fa a rendere un campo di un DataGridView dinamicamente linkabile ?

Non so se mi sono spiegato bene. Diciamo che se invece di una windows
application stavo creando una web application, con php avrei potuto
scrivere:

<table>
<?php
$var=mysql_query("select nome,cognome from anagrafiche");
while ($vet=mysql_fetch_array($var)) {
echo "<tr>";
echo "<td> ",$vet[0],"</td>";
echo "<td><a href=./",$vet[1],".html> ",$vet[1],"</a></td>";
echo "</tr>";
}
?>
</table>

Ecco...come faccio a realizzare una cosa simile con i datagridview ?

Grazie :)

SSUPERPIPPO Profilo | Guru

Purtroppo non è possibile modificare il tipo di cella in DataGridViewLinkColumn generando automaticamente i dati contenuti effettuando il databinding.
Questo tipo di colonna è gestibile solo se aggiunta manualmente.
Perderesti quindi le potenzialità del databinding.

In questo articolo (in inglese) trovi precisazioni in merito.

http://msdn2.microsoft.com/en-us/library/bxt3k60s.aspx

Ciao

Alessandro

Teech Profilo | Expert

Se nell'evento click della colonna metti il codice che metteresti sul link è esattamente uguale...
Se proprio vuoi una cosa simile formatta il font della colonna di colore blu e sottolineato: sembrerà un link...

Onestamente, a livello logico, non vedo il link all'interno di un'applicazione Win la necessità dei link come in applicazioni ASP...

Spero di esserti stato utile...
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

LukeProgrammer Profilo | Newbie

Perchè non provi a gestire l'evento click della riga della datagrid? Se sull'evento click fai magari aprire una form con un'altra datagrid che popoli con i dati dettagliati su quel cognome. Secondo me è una possibile soluzione.
Oppure, sempre sul click della riga esegui la query sulla stressa datagrid.

Spero di esserti stato utile
Ciao
***********************************
LukeProgrammer
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5