您的位置:首页 > 其它

对于GridView控件的RowDataBount事件的错误理解

2013-04-26 10:34 351 查看
今天在做一个程序,有个字段存的是分钟,绑定到GridView时要转变成小时,自然会用到GridView的 RowDataBound事件。

但是我犯了一个严重的错误,在这个事件中我又用了循环来处理数据。

//foreach (GridViewRow gr in GVData.Rows)
//{
//    string a = gr.Cells[5].Text;
//    TimeSpan ts = new TimeSpan(0, int.Parse(gr.Cells[5].Text),0);
//    gr.Cells[5].Text = ts.Hours + "小时" + ts.Minutes + "分钟";
//}


因为开始只在数据库中添加了一条测试数据,所以不会出现什么错误,后来又添加了一条,一运行就会出错,是因为字符串格式问题,这才恍然大悟,

其实RowDataBound事件就是逐条数据绑定,绑定后才会执行这个事件,说的容易明白一点,他本身就是个循环。 所以,直接换成这样过即可。

if (e.Row.RowType == DataControlRowType.DataRow)
{
GridViewRow gr = e.Row;
string a = gr.Cells[5].Text;
TimeSpan ts = new TimeSpan(0, int.Parse(gr.Cells[5].Text), 0);
gr.Cells[5].Text = ts.Hours + "小时" + ts.Minutes + "分钟";
}


不知道理解的对不对,先记录下来,防止以后犯下同样的错误、
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: