如何使gridview列成为电子邮件链接

时间:2012-01-23 21:03:16

标签: asp.net vb.net

我选择了一些使用SQLDataAdapter构建Gridview的代码。

其中一列是一个电子邮件地址,我想建立一个超链接来打开Outlook(用户defautl电子邮件客户端)。

Gridview全部用代码管理。有没有办法做到这一点?

这是代码......

 If counter > 0 Then    
    Dim command4 As New SqlCommand(queryString4, connection) 
    Dim mySQLDataAdapter4 As New SqlDataAdapter(command4) 

    mySQLDataAdapter4.Fill(emailDataset, "needsEmail") 
 End If 
Next  
connection.Close() 


GridView4.DataSource = emailDataset 
GridView4.DataBind()

有一些代码可以检查我为了便于阅读而删除的数据。

我在查询中返回4列。一切都很好,只想制作一个列和活动的电子邮件链接。

谢谢,

3 个答案:

答案 0 :(得分:3)

使用模板字段执行此操作:

<asp:TemplateField HeaderText="email">
    <ItemTemplate>
        <a href="mailto:<%# Bind("email") %>"><%# Bind("email") %></a>
    </ItemTemplate>
</asp:TemplateField>

应该渲染

|<a href="bob@bob.com">bob@bob.com</a>|

修改

您不需要所有列作为模板字段。其余的列可以是这样的:

<asp:BoundField DataField="MyName" HeaderText="MyName"
        SortExpression="MyName" />
<!--adding your templatefield-->
<asp:TemplateField HeaderText="email">
    <ItemTemplate>
        <a href="mailto:<%# Bind("email") %>"><%# Bind("email") %></a>
    </ItemTemplate>
</asp:TemplateField>

您没有发布任何gridview代码,所以我猜测这个问题。如果您尝试从后面的代码中的gridview中获取电子邮件,可以查看this link。它描述了隐藏ID字段,但您应该能够对原始电子邮件地址执行相同的操作。

答案 1 :(得分:1)

听起来您需要在gridview中设置模板列并将其绑定到电子邮件地址。

More information

答案 2 :(得分:0)

我在后面的代码中为你的网格设置RowDataBound事件的方法。您可以访问该行的数据,并可以根据需要格式化每个单元格(在本例中为mailto:email链接)。