C# C将HyperLinkColumn添加到GridView

C# C将HyperLinkColumn添加到GridView,c#,gridview,C#,Gridview,我正在尝试将HyperLinkColumns动态添加到我的GridView中。我有以下代码: HyperLinkColumn objHC = new HyperLinkColumn(); objHC.DataNavigateUrlField = "title"; objHC.DataTextField = "Link text"; objHC.DataNavigateUrlFormatString = "id, title"; objHC.DataTextFormatString = "{2}"

我正在尝试将HyperLinkColumns动态添加到我的GridView中。我有以下代码:

HyperLinkColumn objHC = new HyperLinkColumn();
objHC.DataNavigateUrlField = "title";
objHC.DataTextField = "Link text";
objHC.DataNavigateUrlFormatString = "id, title";
objHC.DataTextFormatString = "{2}";

GridView1.Columns.Add(objHC);

这不管用,所以。。如何将HyperLinkColumn添加到我的GridView中?

您似乎把事情搞混了。我不知道-代码是如何编译的

GridView的列集合可以接受DataControlField类型的列。 我认为您需要初始化HyperLinkField并设置相关属性text、NavigateUrl、HeaderText和Target,然后将其添加到columns集合中

HyperLinkColumn类在使用DataGrid时是有意义的,而不是在GridView中


希望能有帮助。

看来你把事情搞混了。我不知道-代码是如何编译的

GridView的列集合可以接受DataControlField类型的列。 我认为您需要初始化HyperLinkField并设置相关属性text、NavigateUrl、HeaderText和Target,然后将其添加到columns集合中

HyperLinkColumn类在使用DataGrid时是有意义的,而不是在GridView中


希望对您有所帮助。

您必须在数据绑定之前执行此操作,请检查。

您必须在数据绑定之前执行此操作,请检查。

您可能希望在绑定行时添加它:

protected void yourGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
        HyperLink hlControl = new HyperLink();
        hlControl.Text = e.Row.Cells[2].Text; //Take back the text (let say you want it in cell of index 2)
        hlControl.NavigateUrl = "http://www.stackoverflow.com";
        e.Row.Cells[2].Controls.Add(hlControl);//index 2 for the example
}

您可能希望在绑定行时添加它:

protected void yourGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
        HyperLink hlControl = new HyperLink();
        hlControl.Text = e.Row.Cells[2].Text; //Take back the text (let say you want it in cell of index 2)
        hlControl.NavigateUrl = "http://www.stackoverflow.com";
        e.Row.Cells[2].Controls.Add(hlControl);//index 2 for the example
}

在这种情况下,如果您只想重定向到另一个URL,那么简单地使用HyperLink web控件,并在RowDataBound事件中将其推送到GridView行的所需单元格中。 或 如果要在发送到其他URL之前执行任何服务器事件,请尝试以下操作 1在GridView的RowDataBound事件中添加LinkButton对象。 2设置CommandName、CommandArgument属性(如果需要),以便将任何数据传递到此对象。
3通过处理GridView的RowCommand事件捕获此事件。

如果您只是想重定向到另一个URL,则只需使用HyperLink web控件,并在RowDataBound事件中将其推送到GridView行的所需单元格中。 或 如果要在发送到其他URL之前执行任何服务器事件,请尝试以下操作 1在GridView的RowDataBound事件中添加LinkButton对象。 2设置CommandName、CommandArgument属性(如果需要),以便将任何数据传递到此对象。
3通过处理GridView的RowCommand事件捕获此事件。

顺便说一句,我认为您可以使用DataGridView并在设计器中选择链接列,您的问题就解决了。DataGridView确实有一个链接列,您只需在单击时添加一个事件,就可以得到所需的内容。如果您可以切换到DataGridView,这个解决方案就会起作用。

顺便说一句,我认为您可以使用DataGridView并在设计器中选择链接列,您的问题就会解决。DataGridView确实有一个链接列,您只需在单击时添加一个事件,就可以得到所需的内容。如果您可以切换到DataGridView,此解决方案将有效。

我认为您应该使用HyperLinkField而不是HyperLinkColumn。

我认为您应该使用HyperLinkField而不是HyperLinkColumn。

我知道此线程很旧,但无法帮助添加我的2美分。以下教程中介绍的过程对我来说非常有效:

我知道这条线很旧,但我还是忍不住加了2美分。以下教程中介绍的过程对我来说非常有效:

它对我真的很有帮助…你能告诉我这个超链接的事件吗?它对我真的很有帮助…你能告诉我这个超链接的事件吗?