在DataGridView的RowDataBind事件里控制HyperLinkField列

DataGridViewRowDataBind事件里控制HyperLinkField

左直拳

 

DataGridView里有一种列是HyperLinkField类型:

<asp:HyperLinkField DataTextField="Title" SortExpression="Title" DataNavigateUrlFields="Id" DataNavigateUrlFormatString="http://www.fuckman.com/fuck.aspx?Id={0}"                         HeaderText="标题"  Target="_blank"  />

 其实就是一种超链接。

如果想控制DataGridView里一些样式,可以在页面里面写<%# Eval() %>之类,也可以在代码里用DataGridViewRowDataBind事件控制。

可是在代码里控制这个HyperLinkField 却遇到了麻烦。

首先要把这一列找出来,找出来之后不能强行转换成HyperLinkField,这样编译会出错,要转换成HyperLink奇怪吧。

    protected void gvWebSite_RowDataBound(object sender, GridViewRowEventArgs e)

    {

        if (e.Row.RowType == DataControlRowType.DataRow)

        {

            DataRowView gv = (DataRowView)e.Row.DataItem;

            ((HyperLink)e.Row.Cells[1].Controls[0]).ForeColor = System.Drawing.Color.Red;

        }

}

 

 

 

原文地址:https://www.cnblogs.com/leftfist/p/4258242.html