更改数据绑定网格视图的单个列的值,并将其显示在同一网格视图中

时间:2015-01-15 18:04:30

标签: asp.net c#-4.0

这是一个奇怪的要求,但是,我可以更改数据绑定网格视图的单个列的值并将其显示在同一个网格视图中吗?比如,在GridView_RowDataBound(对象发送者,GridViewRowEventArgs e)中。我已经编辑了我实际做的代码。问题是“DataItem”是一个typeof类(实体获取的db表)并且无法将其转换为Datarow。那我该怎么办呢?

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        DataRowView drv = (DataRowView)e.Row.DataItem;
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (drv["Id"] != DBNull.Value)
            {
                string val = CommonUtil.Decrypt(drv["Id"].ToString());
                e.Row.Cells[3].Text = val ;
            }
        } 
    }

1 个答案:

答案 0 :(得分:0)

是的,它可以在GridView RowDataBound中使用:

if(e.Row.RowType==DataControlRowType.DataRow)
{

    //say you want to set value of 3rd column to "Hello"
      //  e.Row.Cells[2].Text="Hello"; //0 based index
     MyCustomClass myitem= (MyCustomClass) e.Row.DataItem;
     if (myitem.Id != null)
            {
                string val = CommonUtil.Decrypt(myitem.Id.ToString());
                e.Row.Cells[3].Text = val ;
            }
}

如果这没有帮助,请分享一些代码和更多信息,确切地说明要更改的列以及值。

您可以投射到您想要的类型:

 MyCustomClass drv = (MyCustomClass) e.Row.DataItem;