在DataBound事件上更改GridView BoundField值

ren*_*thy 3 .net gridview

我有GridView(动态创建)与BoundFields.我想在DataBound事件上更改BoundField值.该值包含布尔值(True/False),我需要将它们更改为"Active"/"Inactive".如果这不是动态GridView,我会使用TemplateField,但是,当我动态创建GridView时,最简单的方法是在BoundField中进行.

但我不明白如何改变它.

这是我正确触发的DataBound事件:

protected void gr_RowDataBound(object sender, GridViewRowEventArgs  e)
    {
        DataRowView drv = (DataRowView)e.Row.DataItem;
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (drv["IsRegistered"] != DBNull.Value)
            {
                bool val = Convert.ToBoolean(drv["IsRegistered"]);
                //???? HOW TO CHANGE PREVIOUS VALUE TO NEW VALUE (val) HERE?
            }
        } 
    }
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 6

随着BoundFields你不能使用FindControl在一个TemplateField找到一个控件来设置它Text的实例属性.相反,你设置Cell-Text:

protected void gr_RowDataBound(object sender, GridViewRowEventArgs  e)
{
    DataRowView drv = (DataRowView)e.Row.DataItem;
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (drv["IsRegistered"] != DBNull.Value)
        {
            bool val = Convert.ToBoolean(drv["IsRegistered"]);
             // assuming that the field is in the third column
            e.Row.Cells[2].Text =  val ? "Active" : "Inactive";
        }
    } 
} 
Run Code Online (Sandbox Code Playgroud)

除此之外,您TemplateFields甚至可以在动态中使用GridView.

如何以编程方式添加TemplateField