我选择了一些使用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列。一切都很好,只想制作一个列和活动的电子邮件链接。
谢谢,
答案 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中设置模板列并将其绑定到电子邮件地址。
答案 2 :(得分:0)
我在后面的代码中为你的网格设置RowDataBound事件的方法。您可以访问该行的数据,并可以根据需要格式化每个单元格(在本例中为mailto:email
链接)。