2010-03-27 13 views
6

Estoy trabajando en la aplicación C# que es como un pequeño motor de búsqueda. El usuario ingresará una palabra y el programa devolverá los archivos que contienen esta palabra.HyperLinks En DataGridView

Tengo una matriz de rutas de archivos (como cadenas) y quiero mostrar estas rutas como enlaces en un DataGridView, de modo que cuando el usuario haga clic en el nombre del archivo se abrirá el archivo.

Nota: Estoy trabajando en C# Windows Forms, no ASP.net

+0

No estoy al tanto de un 'GridView' en Winforms. ¿Quizás te refieres a 'DataGridView'? –

+0

sí, quiero decir datagridview lo siento Olvidé mencionar que en la pregunta – Hany

Respuesta

3

DataGridViewLinkColumn parece prometedor.

+0

Esto es bueno. Funciona con .NET 2.0 y mejor. –

4

creo que tengo la respuesta de mi pregunta he añadido un DataGridViewLinkColumn a DataGridView ahora el siguiente paso será llenar los datos en el DataGridView y los nombres de archivo aparecerán como enlaces:

private void button1_Click(object sender, EventArgs e) 
    { 
     string[] SS = new string[3]; 
     SS[0] = "C:\\test1.txt"; 
     SS[1] = "C:\\test2.txt"; 
     for (int i = 0; i < SS.Length; i++) 
     { 
      dataGridView1.Rows.Add(SS[i]); 
     } 
     dataGridView1.Refresh(); 
    } 

el último paso: ahora quiero abrir el archivo cuando el usuario haga clic en él voy a utilizar el evento "CellContentClick" y este código podrán conseguir este objetivo:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
    { 
     string filepath= (string)dataGridView1.Rows[e.RowIndex].Cells[0].Value; 
     System.Diagnostics.Process.Start(filepath); 
    } 
0

Los enlaces pueden añadirse dinámicamente a partir de aspx también usando

<asp:TemplateColumn> 
<HeaderTemplate> 
<a>Eamil Address</a> 
</HeaderTemplate> 
<ItemTemplate> 
    <asp:HyperLink id="HyperLink1" 
     Text='<%# DataBinder.Eval(Container.DataItem, "Professor_email") %>' 
     NavigateUrl='mailto:<%# DataBinder.Eval(Container.DataItem, "Professor_email") %>' 
     runat="server"/> 
</ItemTemplate> 
<EditItemTemplate> 
    <asp:TextBox 
     Text='<%# DataBinder.Eval(Container.DataItem, "Professor_email") %>' 
     runat="server"/> 
     </EditItemTemplate> 
</asp:TemplateColumn>` 
+1

El OP explícitamente dice que no están trabajando en asp.net –