GridView控件上的超链接

时间:2011-05-19 10:27:32

标签: c# .net asp.net sql gridview

如何在gridview的某些列中放置超链接。 数据来自数据集

这是我的代码

        scon.Open();
        scom.CommandText = "StoredProcedure5";
        scom.CommandType = CommandType.StoredProcedure;
        scom.Connection = scon;
        string FunArea = DDlFunctionalArea.SelectedItem.Text + "%";
        scom.Parameters.Add("@FunctionalArea", SqlDbType.VarChar).Value = FunArea;
        scom.Parameters.Add("@KeySkill",SqlDbType.VarChar).Value=txtKeySkill.Text;
        scom.ExecuteNonQuery();
        sda.SelectCommand = scom;
        sda.Fill(ds, "tblJobSeeker");

        GridView1.DataSource=ds.Tables[0];
        GridView1.DataBind();

其中一个字段是电子邮件地址 当数据与Gridview绑定时,EmailAddress字段包含HyperLink,因此当我单击电子邮件地址以导航到另一个页面时

4 个答案:

答案 0 :(得分:2)

您必须添加模板字段,例如......

 <asp:TemplateField HeaderText="HeaderText">
      <ItemTemplate>
          <asp:HyperLink ID="HyperLink1" runat="server">HyperLink</asp:HyperLink>
      </ItemTemplate>
 </asp:TemplateField>

答案 1 :(得分:1)

在GridView中使用以下代码并绑定列。

<asp:TemplateField>
                <ItemTemplate>
                <asp:HyperLink id="hplink" runat="server" Text='<%# Bind("columnname")%>' NavigateUrl='<%# Bind("columnname")%>'></asp:HyperLink>
                </ItemTemplate>
            </asp:TemplateField>

答案 2 :(得分:1)

<asp:TemplateField>
            <ItemTemplate>
            <asp:HyperLink id="hplDate" runat="server" Text='<%# Eval("email")%>' NavigateUrl='<%# "~/yourpage.aspx?email="+Eval("email") %>'></asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>

通过查询字符串在您的页面上收到电子邮件..

答案 3 :(得分:0)

使用以下语法:

<asp:TemplateField>
  <ItemTemplate>
    <a href='PageToNavigate?email=<%# Bind("EmailColumn")%>'><%# Bind("TextToEmailColumn")%></asp:HyperLink>
  </ItemTemplate>
</asp:TemplateField>

<asp:TemplateField>
  <ItemTemplate>
    <asp:HyperLink id="hplink" runat="server" Text='<%# Bind("columnname")%>' NavigateUrl='<%# Bind("columnname")%>'></asp:HyperLink>
  </ItemTemplate>
</asp:TemplateField>

并使用ItemDataBound处理程序:

protected void sgrAssignedRequests_ItemDataBound(object sender, GridViewEditEventArgs e)
{
  if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  {
    var hpl = (HyperLink)e.FindControl("hplink");
    // set values here
  }
}