给GridView某模板列中的TextBox控件赋值,报错:未将对象引用设置到对象的实例。
赋值代码是这样写的:
((TextBox)GridView1.FindControl("tb_DateEnd")).Text = _products.YXDQRQ.ToString("yyyy-MM-dd");

解决方案 »

  1.   

    你应该在RowBinding里(事件名记得不太清除了。)用e.Row.FindControl
      

  2.   

    你在使用 GridView1.FindControl("tb_DateEnd") 这个的时候先判断下它是否为NULL就不会报错了~if (GridView1.FindControl("tb_DateEnd")!=null)
    {
       ...................
    }
      

  3.   

    你是说在GridView的RowDataBound事件中吗?
    ((TextBox)e.Row.FindControl("tb_DateEnd")).Text = _products.YXDQRQ.ToString("yyyy-MM-dd");
    我试了一下还是报同样错误。
      

  4.   

    肯定会报错的
    正确方式应该是
    ((TextBox)GridView1.Rows[i].Cells[j].FindControl("tb_DateEnd")).Text = _products.YXDQRQ.ToString("yyyy-MM-dd");
    其中i代表某一行的某一列
    用循环去找
      

  5.   

    楼上说的是,你需要确定Textbox在哪一列里。
    ((TextBox)e.Row.Cells[0].FindControl("tb_DateEnd")).Text = _products.YXDQRQ.ToString("yyyy-MM-dd");