I prefer to do it with a method and a TemplateField.
In your markup:
<asp:GridView id="GridView1" runat="server">
<Columns>
<asp:TemplateField HeaderText="User Name">
<ItemTemplate>
<%# GetMailtoLink(Eval("UserName")) %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
And then in your code-behind:
protected string GetMailtoLink(object userName)
{
if (userName == null || String.IsNullOrEmpty(userName.ToString()))
return null;
return String.Format("<a href="\"mailto:{0}@companyName.com\"">{0}</a>", userName.ToString());
}
Mind you, this will open in the user's default email program as set in Windows. From a web site there is no way I know of to specify Outlook, but if you're developing this for internal company employees then you can probably make some valid assumptions as to what software they will have installed on their machine.
Also, we've sometimes had issues in the past due to security settings in Internet Explorer. If they are getting errors when they click the mailto link, check to make sure IE allows it in the security options for the zone (Intranet, or whatever it is your site is in).