如何在RowDataBound上更改gridview中超链接的URL

时间:2012-12-19 16:11:44

标签: gridview hyperlink rowdatabound

我有一个包含超链接的模板字段的gridview。我想根据我的SQL数据的特定字段(绑定到网格的数据表)中的某些逻辑来更改超链接的URL。我想我需要使用RowDataBound事件,检查数据表的字段值并根据需要设置NavigateURL。

如何在RowDataBound期间访问数据表中列的值?

我可以弄清楚它是不是页眉或页脚行,并使用下面的代码访问超链接控件。但是在我的逻辑上画一个空白来查看数据以确定要设置的URL。

if (e.Row.RowType == DataControlRowType.DataRow)
    {
        HyperLink hl = (HyperLink)e.Row.FindControl("hlStatus");
    }

2 个答案:

答案 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()]);

它为我提供了当前行中我想要的列的值。