FindControl 无法找到控件问题解决方案

若用 string cdept =((HtmlInputText)FindControl("dept0" + i.ToString())).Value;

提示结果为空值,即无法找到控件。

改为:

 string cdept =((HtmlInputText)post01.FindControl("dept0" + i.ToString())).Value;

post01是页面的一个控件名称(只要是页面的控件名称都可以)

 

原理:

FindControl方法是根据ID在Control所在的命名容器中寻找相应控件。当执行TextBox1.FindControl("Button1")时,ASP.NET先获取TextBox1.NamingContainer,其值为页面本身(最后生成的xxxx_aspx类实例),再向下递归寻找相应ID的控件,所以一样能找到Button1。

详细出处参考:http://www.jb51.net/article/29388.htm

 

posted @ 2013-09-25 16:05  欧阳峰再战江湖  阅读(414)  评论(0编辑  收藏  举报