DataList控件
一、DataList控件是一种事件反生机制。
DataList的生成过程:
逐行创建、逐行绑定。
每一行都是一个对象先生成一个空项,无数据,如果是普通的项则生成出对应的表格,如果是编辑项,则不仅生成出相应的表格,而且生成出相应的控件,对应的文本框、下拉列表、单选按钮列表等等。当然如果普通项中有控件也会在创建每一行的时候生成出来。反正逐行创建的意思就是除了数据以外的所有的东西都展现出来,包括控件、包括样式表、表格等等,反正没有数据。所谓逐行绑定,就是绑定创建出来的每一个生成出来的单元格的数据。
页眉在创建的时候就展现完整了,不需要绑定数据。
每一次创建完每一行都会来调用
ItemCreated()事件。
每次绑定数据完都会来执行
ItemDataBound()事件(包括页眉在绑定的时候,尽管绑定没有数据,也会来执行绑定,绑定完以后也会来执行这个事件,所以说页眉和其它项在创建和绑定上没有区别,尽管数据时写死在每一个单元格上面的,不需要数据的绑定)。
---------------------------------------------------------------------
下面主要来说说操作DataList后台代码的一系列关键字、关键语句及其他们的作用和意思。
e.Item //代表刚刚创建或绑定完的行对象。
e.Item.ItemType //代表刚刚创建或绑定完的行对象的类型。
e.Item.DataItem //绑定到当前行的数据对象
//在ItemCreated()事件中这个数据对象为空
//只有在ItemDataBound()中才有数据
//一般用在ItemDataBound()事件中
e.Item.ItemIndex //刚刚创建完行的索引号。
//从0开始。用的时候,从数据首行(不包含页眉开始数)
e.Item.FindControl(string id
)
//返回Control类型 根据控件ID在当前项中(页眉项 HeaderTemplate、页脚项 FooterTemplate、数据项 ItemTemPlate、数据交替项 AlterNatingItemTemplate、编辑项 EditItemTemPlate、选中项SelectedItemTemplate...)找到对应的控件。
注:我们在做更新按钮的时候(CommandName设为Update),本身更新按钮就在编辑模板中(EditItemTemPlate),所以UpdateCommand()事件中所有的e.Item.FindControl 都是编辑模板中的控件。
如果我们不知道数据对象的数据类型,我们可以通过打断点在即时窗口中找到数据对象(e.Item.DataItem )的数据类型。
即使窗口在哪里?菜单栏中调试=》窗口=》即时