2010-03-27 66 views
6

我正在研究C#应用程序,它就像一个小型搜索引擎。用户将输入一个单词,程序将返回包含该单词的文件。DataGridView中的超链接

我有一个文件路径的数组(作为字符串),我想将这些路径显示为DataGridView中的链接,这样当用户单击文件名时,文件将被打开。

注:我工作在C#的WinForms,而不是ASP.net

+0

我不知道Winforms中的'GridView'。你可能是指'DataGridView'? – 2010-03-27 18:55:03

+0

是的,我的意思是datagridview 对不起,我忘了提及,在问题 – Hany 2010-03-27 19:24:24

回答

3

DataGridViewLinkColumn看起来很有希望。

+0

这很好。与.NET 2.0和更好的工作。 – 2010-03-27 21:10:55

4

我想我有我的问题 的我添加了一个DataGridViewLinkColumn到DataGridView 现在的答案,下一步将填充数据到datagridview的 和文件名将显示为链接:

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(); 
    } 

最后一步: 现在我要打开的文件,当用户点击它 我会用“CellContentClick”事件,该代码将实现它:

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

链接可以从ASPX动态添加也使用

<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

OP明确表示他们不在asp.net中工作 – 2012-10-10 20:39:25