代码改变世界

GridView的RowCreated与RowDataBound事件区别

2010-11-02 10:41  微软一点都不软  阅读(351)  评论(0编辑  收藏  举报

关于RowCreated与RowDataBound事件区别,经过google一下,得出结果:

GridView的RowCreated与RowDataBound的一个区别在于RowCreated事件是这样的,不管数据是不是重新绑定到GridView,只要在GridView里新增一行记录就将引发RowCreated事件。那意味着,当发生PostBack回传事件时,哪怕数据来自视图状态,也会引发RowCreated事件。

我们使用RowCreated事件而不使用RowDataBound事件的原因在于,只有当数据明确的绑定到数据Web控件时才会引发RowDataBound事件.

RowDataBound是数据绑定的时候才会触发,RowCreated是每次呈现的时候都要触发,RowCreated先于RowDataBound执行。

举个列,如果页面回发后发生过GridView.databind(),那么两个事件都会触发。如果没发生GridView.databind(),那么就只会触发RowCreated。

事件执行顺序:

一、GridView 显示绑定的数据顺序如下:

DataBinding ->RowCreated ->RowDataBound ->...... ->DataBound

二、GridView 点击分页按钮时的事件发生顺序:

RowCommand >PageIndexChanging >PageIndexChanged >DataBinding >RowCreated:Header>RowDataBound > RowCreated:DataRow >RowDataBound >RowCreated:Footer>RowDataBound >RowCreated:Pager >RowDataBound>
DataBound

理解也就是在点跳页按钮的时候,只会绑定要显示的页的资料,如上,因此在RowDataBound中不会绑定所有的资料,此时去统计,只能统计出当前页的加总。

目前想来,也只有对要绑定的资料进行统计了。不能在GridView中的事件中去处理。