DataGrid的ItemCreated和ItemDataBound事件

本文详细介绍了ASP.NET中DataGrid控件的两个重要事件:ItemDataBound和ItemCreated。ItemDataBound事件在数据绑定完成后触发,可用于修改数据显示前的格式。ItemCreated事件在创建DataGrid控件中的每一项时触发,适合用于动态控制行的内容和外观。

1.DataGrid.ItemDataBound当项被数据绑定到 DataGrid 控件后,将引发 ItemDataBound 事件。此事件为您提供了在客户端显示数据项之前访问该数据项的最后机会。当引发此事件后,该数据项将被设为空,并且不再可用。

(ItemDataBound嘛,只要执行了DataBind方法,就会马上激发这个事件。)

2.DataGrid.ItemCreated当创建DataGrid 控件中的项时(不论是在往返行程中还是在将数据绑定到控件时),都会引发 ItemCreated 事件。ItemCreated 事件通常用于控制 DataGrid 控件中行的内容和外观。

(ItemCreated呢,如果页面是第一次访问(Page.IsPostBack = false),那在第一次执行DataBind的时候,会先激发ItemCreated事件,也就是说,执行了DataBind后,首先会用ItemCreated来建立Header行,然后用ItemDataBound来绑定Header行,再用ItemCreated来建立第一行,再调用ItemDataBound来绑定第一行,也就是说ItemCreated和ItemDataBound是交替执行的。
页面返回时,也会执行ItemCreated事件,在Page_Load之前,但是这时候就不会再执行ItemDataBound事件了。
所以,如果你想在DataGrid里动态添加什么控件,就需要在ItemCreated事件中,而不是在ItemDataBound事件中)


也就是说ItemCreated事件在DataGrid创建表格行时触发,而ItemDataBound则在数据绑定被绑定到相应的行后触发,前者可以用来在DataGrid中创建动态控件,比如下面的例子中在DataGrid的标题行中加入一个Button并注册它的Click事件,而ItemDataBound被触发时,数据已经绑定到相应的行,下边这段代码 我放到ItemDataBound 或者ItemCreated 都可以实现对

if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) //简单的说是DataList里的所有数据项内容
{
//删除确认
LinkButton delBttn = (LinkButton) e.Item.Cells[9].Controls[0];
delBttn.Attributes.Add("onclick","javascript:return confirm('你确定删除该记录么?')");


}

文章引用自:http://www.cnblogs.com/renyu732/archive/2005/09/28/245587.html

转载于:https://www.cnblogs.com/danball/archive/2010/12/22/1913820.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值