在.net 1.1的年代,GridView的名字叫DataGrid(反正我认为GridView就是DataGrid的一个马甲),那时我们常把一列隐藏掉,然后在行绑定时处理那一列的数据再显示到别处,但自从DataGrid穿了马甲之后,隐藏的列(Visible=false)就不给数据绑定了!
其实,用不着隐藏一列来存数据的,因为数据本身已经存在了GridView的DataSource之中了,直接访问DataSource就好了,如果想在 GridView1_RowCreated等“行”事件中访问该行的数据,也有办法:
protected void OnRowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { int total = (int)((DataRowView)e.Row.DataItem)["TOTALINCREASE"]; int registers = (int)((DataRowView)e.Row.DataItem)["CHARACTERINCREASE"]; if (total == 0) { e.Row.Cells[3].Text = "0"; } else { e.Row.Cells[3].Text = Math.Round(registers * 1.0f / total, 4).ToString("0.00%"); } } }