我先拖了一个table,将其设为runat=server,然后后台动态的为其加行。有些htmltablecell里动态加了htmlinputtext控件,并同时设了id属性。这些都是在page_load时完成的。
现在我的页里中又加入一个button,单击按钮,获得所有htmltalbecell中的控件,如下:
HtmlInputText jhrq = tab_product.Rows[i].Cells[j].FindControl(str1) as HtmlInputText;
tab_product为table的ID,str1是字符串,代表某htmltablecell中控件的ID。但是
在string str=jhrq.Value;时却出现“未将对象引用设置到对象的实例”这样的错误。我想这应该是说没有找到控件的意思吧。
请高手指教,我的错误在哪里?

解决方案 »

  1.   

    tab_product.Rows[i].Cells[j]  这里的i  j中有控件吗?
      

  2.   

    你断点看下吧,由于控件之间有空格或其它原因,有时候Rows[i].Cells[j]这种方式会取到一个空字符串,之前遇到过,后来断点过去才发现索引不对。你可以看下Rows[i].Cells[j].Controls取到的是什么
      

  3.   

    jhrq ==null判断
    HtmlTableRow tr ....
      foreach (HtmlTableCell td in tr.Cells)
      {
       HtmlInputText jhrq = td.FindControl("") as HtmlInputText;
      }
      

  4.   

    对了,htmlinputtext控件readonly或disabled了,会不会有影响?
      

  5.   

    问题解决了。原来是ID的问题,我以为用*.attribute.add("id","")添加的,但实际要用*.id=""才能找到。