GridView的事件过程详解记录

转自http://zwj83115.blog.163.com/blog/static/2996341820071160832419/

P1默认数据绑定过程

编号

事件名称

作用

E1

DataBinding

数据绑定之前触发,在这个事件之前(第一次生成GridView),GridView不存在行数据。

E2

RowCreated

GridView的数据源存在时,产生新的一行

E3

RowDataBound

GridView的数据源存在时,在调用F2之后,调用自身,为新生成的GridView的一行提供数据绑定。在此事件中如果要引用隐藏的列,则要用DataBinder.Eval(e.Row.DataItem,"XXX")

E4

DataBound

当所有的Row生成之后,并且绑定了数据,触发本事件。说明了GridView的事件绑定结束。在此事件中可以引用Datakeys(将隐藏的列转为Datakeynames),如GridView1.DataKeys[0][0].ToString()

过程,调用GridViewDataBind可以激起数据绑定P1

E1 ——> E2 ——> E3 ——>E2 ——>E3…..——>E4

 

P2当点击SelectButton时,事件处理过程(DeleteNewSelect类似)

编号

事件名称

作用

E5

RowCommand

GridView中,点击了其中的Button,因此触发了RowCommand的事件。

E6

SelectedIndexChanging

buttonCommandName=”Select”时,触发本事件(否则不会触发本事件),生成了一个新的SelectIndex,和我们可以设定Cancel = true,拒绝触发绑定样式和E6

E7

SelectedIndexChanged

E5完成后,我们可以在这里处理SelectIndex后的事件

在这里我们没有进行进行P1的数据绑定过程

E4 ——>E5 ——>E6

 

P3当点击EditButton时,事件处理过程

编号

事件名称

作用

E5

RowCommand

GridView中,点击了其中的Button,因此触发了RowCommand的事件。

E8

RowEditing

buttonCommandName=”Edit”时,触发本事件(否则不会触发本事件),生成了一个新的EditIndex,和我们可以设定Cancel = true,拒绝编辑和E9

注意这里我们用到了P1

E5 ——>E8——>P1

在这里应为Edit事件触发后,可以修改的Field需要填充数据因此调用了P1这个数据绑定过程。

 

P4当点击EditCanel时,事件处理工程

编号

事件名称

作用

E5

RowCommand

GridView中,点击了其中的Button,因此触发了RowCommand的事件。

E9

RowCancelingEdit

buttonCommandName=”Cancel”时,触发本事件(否则不会触发本事件),生成了一个新的RowIndex,和我们可以设定Cancel = true,继续编辑

注意这里我们用到了P1

E5 ——>E9——>P1

在这里应为Edit事件触发后,可以修改的Field需要填充数据因此调用了P1这个数据绑定过程。

 

由上面已知,我们可以将GridView的事件过程作一下总结:

1,  当第一次生成GridView时,调用DataBinding

2,  当触发Select时,调用SelectIndexChanging,但不触发P1过程

3,  当出发EditCancelNewUpdate,首先调用各自的事件,然后触发P1工程。

4,  所有Button事件触发时,首先出发RowCommand事件。

5,  出发SelectEditCancelNewUpdate的关键是CommandName=”Select/Edit/Cancel

/New/Update”就可以触发相应的事件;

原文地址:https://www.cnblogs.com/BeyondTime/p/2916025.html