如何在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,因此当我单击电子邮件地址以导航到另一个页面时
答案 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
}
}