1

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

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

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

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

2 回答 2

0

Eval 方法会给你你所追求的。

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");
    }
}
于 2012-12-19T16:21:49.097 回答
0

这似乎可以解决问题。如果有更好的方法请告诉我。

DataRowView drv = (DataRowView)e.Row.DataItem;
int iStatusCode =  Convert.ToInt32( drv[myDatAccessLayer.Class.Property.ToString()]);

它给了我当前行中我想要的列的值。

于 2012-12-19T16:40:45.657 回答