zoukankan      html  css  js  c++  java
  • 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”就可以触发相应的事件;

  • 相关阅读:
    Python中判断字典的键或值在不在字典中
    Python中字符串,列表,元组三者之间相互转换
    mysql /*! */
    【kubernetes入门学习】使用minikube创建k8s本地单节点集群
    Java中发生内存泄漏的常见场景
    python的list()列表数据类型的方法详解
    python的str()字符串类型的方法详解
    python的运算符
    python基础之while语句continue以及break --语法以及案例
    python的if条件语句的语法和案例
  • 原文地址:https://www.cnblogs.com/BeyondTime/p/2916025.html
Copyright © 2011-2022 走看看