我有一个包含超链接的模板字段的gridview。我想根据我的SQL数据的特定字段(绑定到网格的数据表)中的某些逻辑来更改超链接的URL。我想我需要使用RowDataBound事件,检查数据表的字段值并根据需要设置NavigateURL。
如何在RowDataBound期间访问数据表中列的值?
我可以弄清楚它是不是页眉或页脚行,并使用下面的代码访问超链接控件。但是在我的逻辑上画一个空白来查看数据以确定要设置的URL。
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink hl = (HyperLink)e.Row.FindControl("hlStatus");
}
答案 0 :(得分:0)
Eval method将为您提供您所追求的目标。
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.DataRow) {
HyperLink hl = (HyperLink)e.Row.FindControl("hlStatus");
hl.NavigateUrl = "http://www.google.com?q=" + DataBinder.Eval(e.Row.DataItem, "ColumnName");
}
}
答案 1 :(得分:0)
这似乎可以解决问题。如果有更好的方法,请告诉我。
DataRowView drv = (DataRowView)e.Row.DataItem;
int iStatusCode = Convert.ToInt32( drv[myDatAccessLayer.Class.Property.ToString()]);
它为我提供了当前行中我想要的列的值。