在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;

}

}

你可能感兴趣的:(asp)