如何让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中打开的内容,那么如何做到这一点呢

如何让GridView中的用户名列在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>