Page.FindControl方法找不到指定控件的原因
2008-02-17 21:52
288 查看
在ASP.NET 2.0中,引入了MasterPage的机制,在当前页使用MasterPage的情况下,放在 ContentPlaceholder1这样的内容页的控件无法用Page.FindControl来查找,原因何在?
MSDN对FindControl的解释:在当前的命名容器中搜索带指定 id 参数的服务器控件
这里有一篇文章阐述阐述FindControl方法和INamingContainers接口:http://www.odetocode.com/Articles/116.aspx
FindControl方法是在当前naming container查找指定ControlID对应的控件,该naming container是一个实现了INamingContainer接口的对象。
可以在该页的页指令中添加 Trace=Ture 指令来跟踪页面输出查看控件树。一个页面的控件树中,Page对象必然是顶级的naming container,但绝非必然是唯一的naming container。譬如当有GridView存在的话,GridView其实也是一个naming container,要找GridView中的一个ControlID,就不能用Page.FindControl,而得用[GridView对象].FindControl方法。
很多时候,因为是动态控件,明知道是在同一个naming container中,但不知道该naming container是什么对象,一个控件要找到另一个控件,可以用this.Parent.FindControl方法。
自由、创新、研究、探索……
MSDN对FindControl的解释:在当前的命名容器中搜索带指定 id 参数的服务器控件
这里有一篇文章阐述阐述FindControl方法和INamingContainers接口:http://www.odetocode.com/Articles/116.aspx
FindControl方法是在当前naming container查找指定ControlID对应的控件,该naming container是一个实现了INamingContainer接口的对象。
可以在该页的页指令中添加 Trace=Ture 指令来跟踪页面输出查看控件树。一个页面的控件树中,Page对象必然是顶级的naming container,但绝非必然是唯一的naming container。譬如当有GridView存在的话,GridView其实也是一个naming container,要找GridView中的一个ControlID,就不能用Page.FindControl,而得用[GridView对象].FindControl方法。
很多时候,因为是动态控件,明知道是在同一个naming container中,但不知道该naming container是什么对象,一个控件要找到另一个控件,可以用this.Parent.FindControl方法。
自由、创新、研究、探索……
相关文章推荐
- Page.FindControl方法找不到指定控件的原因
- Page.FindControl方法找不到指定控件的原因
- 解决Page.FindControl方法找不到指定控件 转
- 解决Page.FindControl方法找不到指定控件 转
- 解决使用MasterPage后,Page.FindControl方法找不到指定控件的问题
- 解决使用MasterPage后,Page.FindControl方法找不到指定控件的问题
- 解决使用MasterPage后,Page.FindControl方法找不到指定控件的问题
- [网络收集]解决在母版页中使用Page.FindControl方法找不到指定控件的问题
- 关于Asp.net的FormView控件中,用FindControl方法找不到对应控件问题
- DataGrid中的FindControl方法找不到值的原因
- XP系统无法安装软件并提示“系统找不到指定的路径”的原因及解决方法
- 关于Asp.net的FormView控件中,用FindControl方法找不到对应控件问题
- 在Pageload方法里绑定DropDownLis等控件传不出值的问题
- Red5在Remoting时如果添加了@Transactional就找不到方法的原因
- 非使用FindControl方法找到深层嵌套的控件 Ver2
- 引用母版页后在page页面修改母版页控件的值的方法
- 卸载VS2011 Developer Preview后Sql Server2008 R2建立数据库关系图报“找不到指定的模块”错误的解决方法
- 注册控件报找不到指定模块的一个解决办法
- 已正确配置Jquery插件,却提示方法找不到的原因分析(Juery.cookie)
- C# 001 --- 正确的删除一个控件的事件函数 --- 解决错误: “A”不包含“B”的定义,并且找不到可接受类型为“A”的第一个参数的扩展方法“B”(是否缺少 using 指令或程序集引用?)