RowDataBound中代码对第一行不起作用

12 篇文章 0 订阅
9 篇文章 0 订阅

可将代码放入Header下,代码将对第一行起作用了

 

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
       
if (e.Row.RowType == DataControlRowType.Header)
        {
           
//do nothing
        }
       
if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Response.Write(GridView1.Rows[
0].Cells.Count.ToString());
        }
    }

 

 

第一次RowDataBound被执行的时候,是Header被创建后加进GridView的时候。也就是if(e.Row.RowType==DataControlRowType.Header){ //这里被执行;}
这时候GridView1.Rows[0]你根本访问不到,因为GridView.Rows的时候是不考虑Header的。

第二次RowDataBound被执行的时候,第一行的GridViewRow已经被创建,数据也被绑进GridViewRow里了。但真到RowDataBound执行结束,你都不可能访问到GridView1.Rows[0],因为GridViewRow还没添加进GridView的集合当中。

当第三次DataRowBound执行的时候,这是候才有一个真正包含数据的GridViewRow已经被添加进GridView.Rows集合。这时才能访问到GridView.Rows[0]。

 

if (e.Row.RowType == DataControlRowType.DataRow)
{
    Response.Write(GridView1.Rows[0].Cells.Count.ToString());
}
if段里的代码第一次执行时肯定也是访问不到GridView.Rows[0]的,因为根本没有。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值