如何让GridView中的用户名列在Outlook中打开
本文关键字:Outlook 用户 GridView | 更新日期: 2023-09-27 18:24:28
我开发了一个基于网络的培训矩阵,显示了公司各部门每位员工的培训记录。该矩阵将显示许多列,如员工姓名、用户名、职务。。。等等。我现在想要的是让每个员工的用户名都可以点击,这意味着当管理员点击它时,outlook将用他的电子邮件打开,管理员将能够向他发送消息。在我的公司,这是可能的,因为每个员工的电子邮件主要是:username@companyName.com那么该怎么做呢?
顺便说一下,将使用存储过程从数据库中检索员工的用户名。用户列是GridView中的第4列。
我所做的是:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
///Add mailto to the Username column
e.Row.Cells[3].Text = "<a href='mailto:'" + e.Row.Cells[3].Text + "@aramco.com?Subject=About%20Your%20Safety%20Training%20Record" +" />" + e.Row.Cells[3].Text + "</a>";
}
}
我可以让每个员工的用户名都是可点击的,但我无法将他的电子邮件放在Outlook中打开的内容,那么如何做到这一点呢
您可以创建超链接,如下所示。
<asp:GridView ID="grd" runat="server" AutoGenerateColumns="false"
OnRowDataBound="grd_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="btn1" runat="server" Text="click Me" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
protected void grd_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink btn1 = (HyperLink)e.Row.FindControl("btn1");
btn1.NavigateUrl = "mailto:abc@yahoo.com";
}
}
或者像下面这样。
<asp:GridView ID="grd" runat="server" AutoGenerateColumns="false"
OnRowDataBound="grd_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# Eval("EMail", "mailto:{0}") %>' Text="Hi"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>