不知道你在什么地方来判断它是否为空的,如果在EditCommand里面写的,当然是不行了。

解决方案 »

  1.   


        TemplateColumn tc = new TemplateColumn();
        tc.EditItemTemplate = new GenericItem("questionitem");
        myDataGrid.Columns.Add(tc);
      

  2.   

    你的程序有几个方面的问题:
    1、GenericItem没有Text的属性。
    2、GenericItem是一个容器对象,它也不是TextBox的类型
    3、if((TextBox)di.FindControl("questionitem").Text =="")
    {
     IsEmpty = true;
     break;
             }
    代码的条件如果没有找到控件,那么这个语句自然就会发出你所看到的例外。我不知道你具体要实现的目的,如果就像你的代码所示的那样,为什么要封装一个TextBox到GenericItem类中(因为这样,你需要两次的FindControl,这就是你的程序直接失败的原因)

      

  3.   

    下面是修改你的代码(已经通过):
    if(di.FindControl("questionitem")!=null&&((TextBox)di.FindControl("questionitem")).Text=="")
    {
       IsEmpty=true;
       break;
    }
      

  4.   

    条件不成立什么意思?我已经对上面的代码做过测试.另外还是那个问题,为什么不直接插入文本框到DataGrid中,不能理解你的目的。