在ASP.NET 2.0中,引入了MasterPage的机制,在当前页使用MasterPage的情况下,放在 ContentPlaceholder1这样的内容页的控件无法用Page.FindControl来查找,原因何在?
MSDN对FindControl的解释:在当前的命名容器中搜索带指定 id 参数的服务器控件
这里有一篇文章阐述阐述FindControl方法和INamingContainers接口:[url]http://www.odetocode.com/Articles/116.aspx[/url]
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方法。

本文转自 张善友 51CTO博客,原文链接:http://blog.51cto.com/shanyou/73875,如需转载请自行联系原作者

Page.FindControl方法找不到指定控件的原因相关推荐

  1. 使用母版页后出现控件,使用FindControl找不到指定控件

    在注册页面中,为了重置页面上所有的控件,编写了页面中重置按钮的单击事件 protected void btnReset_Click(object sender, EventArgs e) { Labe ...

  2. 非使用FindControl方法找到深层嵌套的控件

    首先看下示意图 上图中,有七层MasterPage嵌套,最后一层MasterPage有一个ASPX网页,在ASPX网页上有一个ASCX用户控件,在ASCX用户控件有一个TextBox控件. 在第一层的 ...

  3. 在Repeater控件,Repeater1控件中都有FooterTemplate模板.但你在后台中如何去找FooterTemplate中的控件呢?...

    在Repeater控件,Repeater1控件中都有FooterTemplate模板.但你在后台中如何去找FooterTemplate中的控件呢? 如.<FooterTemplate>   ...

  4. 给DataList分页有两个办法:1、自定义实现分页方法 2、用第三方控件(例如AspNetPager)

    给DataList分页有两个办法:1.自定义实现分页方法 2.用第三方控件(例如AspNetPager) 先介绍下如何自定义实现分页方法. 我的DataList分页方法的核心原理是利用PagedDat ...

  5. MFC中如何将焦点设置到指定控件上

    在最近的项目中,需要实现刷卡功能,其原理就是响应WM_KEYDOWN和WM_CHAR等键盘消息,需要重写BOOL PreTranslateMessage(MSG* pMsg)函数来处理键盘消息:软件启 ...

  6. MVC为Html对象建立一个扩展方法,使用自己的控件就像使用TextBox一样方便

    先看一下我想要的结果: 很容易它就是一个单选按钮组,当我后台为Html对象(HtmlHelper的一个实例,它被定义在System.Web.Mvc名称空间下的WebViewPage类,即它对于所有MV ...

  7. appim自动化--点击指定控件的指定位置

    终于有意识的把代码块封装起来了,首次给自个赞个:) 点击指定控件的指定位置,要用到枚举-- package appiumtest; import java.net.URL;import io.appi ...

  8. 【C#关于抓包网站解析】webBrowser实现自动登录以及淘宝登录部分登录找不到对应控件解决方法

    最近在开发一款淘宝领券机器人,其中要应用到网络抓包程序,使用C#开发,进行模拟自动登录,但是发现一个问题淘宝自动登录老是找不到对应的控件Id,最后想可能是淘宝应用啥技术隐藏了对应Id,借此机会教大家一 ...

  9. 当PreviousPage.FindControl遇到MasterPage,如何查找控件?

    有以下两个页面Default.aspx和Result.aspx,代码如下: <!-- Default.aspx --> <%@ Page Language="C#" ...

最新文章

  1. php yii2支付宝开发,yii2 支付宝支付教程 [ 2.0 版本 ]
  2. 有多个重载参数pow_面试深刨——150分面重载
  3. NFS Volume Provider(Part II) - 每天5分钟玩转 OpenStack(63)
  4. 二分查找算法及其变种
  5. 为什么mysql第一步安装_Mysql安装步骤
  6. SAP ABAP实用技巧介绍系列之 ABAP XSLT apply_template keyword
  7. 【vim】几种模式的切换
  8. 使用djcproxy创建代理对象
  9. 为参加脱欧协议表决 英国工党女议员将延后剖腹产
  10. centos6安装python3.4和pip3
  11. 新浪微博api接口java_Java调用新浪微博API【转】
  12. 一看就懂:正则表达式
  13. uniapp 微信浏览器H5页面自定义分享链接
  14. 利用opencv 做一个疲劳检测系统(2)
  15. 动画三部曲--属性动画
  16. xwork配置文件: 新配置文件覆盖旧文件中的同名Action
  17. Python统计英文、中文、数字、空格等字符数
  18. Simulink如何添加模块到Library Browser
  19. java定义一个eat方法_Java继承概念详细解读
  20. GitHub上有哪些优秀的爬虫项目?

热门文章

  1. linux xorg.0.log,Red Hat无法登录,Cannot open log file /var/log/Xorg.0.log
  2. 原地置换法寻找数组中重复的数
  3. leetcode453. 最小操作次数使数组元素相等(贼难的简单题)
  4. 关系数据库——视图/存储过程/触发器
  5. 推荐系统(3)-协同过滤2-矩阵分解算法
  6. 目前基于区块链的档案防篡改系统的设计如何实现防篡改
  7. C++3个汉诺塔递归问题
  8. LInux学习笔记(四)-----实操排雷
  9. VLC详细的使用说明以及配置说明综合示范实例精通VLC开发
  10. 264 参考帧 list0 list1