呈现 GridView 控件之前,该控件中的每一行必须绑定到数据源中的一条记录。将某个数据行(用 GridViewRow 对象表示)绑定到 GridView 控件中的数据以后,将引发 RowDataBound 事件
所以我们可以在绑定的同时做一些事件处理,比如显示格式,js的调用等,现在我们就来简单的介绍一下用法
首先我们要判断一下对哪些行处理绑定事件,然后再写事件
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{
FangAnInfo ff= (FangAnInfo)e.Row.DataItem;
Response.Write(ff.AddDate);
}
}
上面的这段代码主要就是获得控件中某行绑定的数据源中的值,这个值可以在控件中显示或者不显示,只要在数据源中存在就可以了,需要说明的是,如果你绑定数据源是一个泛型集合,那么你转换的时候的类型就是该泛型集合中的元素即对象:FangAnInfo ff= (FangAnInfo)e.Row.DataItem;如果你绑定的数据源是DataSet或者是DataTable,那么转换的时候就是DataRowView:DataRowView drv = (DataRowView)e.Item.DataItem;这样做的好处,就是可以直接获得改行中所有你想得到的值,代替了以前繁琐得到这些值的方法!
我们也可以在里面处理一下js的事件调用,如光帮效果,删除提示等
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor");
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton l = (LinkButton)e.Row.FindControl("LinkButton1");
l.Attributes.Add("onclick", "javascript:return " +
"confirm('确认删除要删除吗?')");
}
}
其他的repeat和DataList用法一样,要加上
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)