如何将自动生成的GridView列设置为超链接

3

我希望将gridview.columns[0]作为超链接。我尝试了很多不同网站上提到的解决方法。我将一个list<>绑定到了网格上。我需要将第一列设置为超链接,点击该链接后,应该会重定向到相应的项目页面。 我需要使用哪个事件,并如何从列表中传递该值?


1
你的GridView行是自动生成的吗? - Muhammad Akhtar
2个回答

8
void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        var firstCell = e.Row.Cells[0];
        firstCell.Controls.Clear();
        firstCell.Controls.Add(new HyperLink { NavigateUrl = firstCell.Text, Text = firstCell.Text });
    }
}

请注意,如果您仅在页面首次加载时将数据绑定到网格,则您所做的更改将会消失。


1
嗨,我想知道如何在GridView中隐藏一列。 我已经尝试了以下代码: if (e.Row.RowType != DataControlRowType.Pager) { e.Row.Cells[1].Visible = false; } 它可以实现隐藏,但是会报错。 - tinu

3

您需要将该列设置为模板列。

<asp:TemplateField HeaderText="">
  <ItemTemplate>
   <asp:HyperLink ID="HyperLink1" runat="server" Text="test" NavigateUrl='<%# Eval("fieldName", "show.aspx?ID={0}") %>'></asp:HyperLink>
  </ItemTemplate>
</asp:TemplateField>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接