介绍 这是我关于ASP系列的另一篇小文章。NET控件,它的主要焦点是揭示控件如何相互关联,涉及哪些实体,以及它们在此任务中的主要角色是什么。 动机 理解每次处理页面请求和某人在他的浏览器中获得您的web表单时在我们的绳套下发生的小魔术,将帮助您避免许多问题,更快地调试它们,并生成更好的应用程序。 如果您是一个有经验的程序员,这些知识还可以帮助您编排复杂的解决方案,也许还可以逐步完成一些ASP。净的约束。 控件之间是如何关联的? 为了公开一个ASP。你需要把它放在一个页面中,事实上,在任何ASP。网络控制。为了参与页面生命周期,您需要以某种方式与页面相关。这种关系是通过父/子层次结构实现的。 页控件是此层次关系的根控件,它处理应该触发哪个管道(初始请求、回发请求或回调请求)。 如果需要,控件可以包含其他控件,并且所有这些子控件一起保存在通过控件属性公开的控件集合实例中。每个控件都知道它的父控件。 可以包含其他控件的控件也可以标记为其子控件的自动命名生成过程中的参与者。这个角色是通过实现INamingContainer接口来实现的,当这种情况发生时,该控件被称为NamingContainer。每个子控件都知道它的名称为container。 ControlCollection提供了一组通常用于收集管理的方法: Add -将指定的控件对象添加到集合中。从父服务器控件的ControlCollection对象中移除指定的服务器控件。清除——从当前服务器控件的ControlCollection对象中移除所有控件。 一个控件只能附加到另一个控件并通过ControlCollection成为它的子控件。添加方法。每当从集合中添加或移除一个控件时,它的父控件和它的NamingContainer都会收到通知并作出反应。 当一个控件添加到另一个控件的子集合时,则为新的父控件。调用AddedControl方法,并执行以下步骤: 检查新添加的子控件是否有所有者,因此其使用是否仅限于该所有者控件。如果为真,则子控件不是有效控件,并抛出异常。检查新添加的子控件是否属于另一个控件的子集合,在这种情况下,该控件将从之前父控件的子集合中移除。这是确保有效的层次关系所必需的:控件只能属于单个控件集合。更新新添加子控件的页引用,以引用新的父页。更新新添加子控件的父引用以引用自身。如果新的父控件是NamingContainer,那么我们将更新新添加子控件的NamingContainer引用以引用它自己。如果没有指定新的子控件ID,那么将为新子控件的NamedControls集合自动生成一个新ID,并将NamingContainer标记为dirty,以确保创建并填充一个新的和新的集合。如果可能,将为新添加的子控件重新创建控件生命周期。 从父控件集合中移除控件时,父控件将被移除。调用RemovedControl方法,并采取以下步骤: 检查新添加的子控件是否有所有者,因此其使用是否仅限于该所有者控件。如果为真,则子控件不是有效控件,并抛出异常。子控件NamingContainer的NamedControls集合被标记为dirty,以确保创建并填充一个新的和新的集合(不包含已删除的控件)。子控件执行非加载递归而不进行处理。在AddedControl上设置的所有引用将被删除,该控件将从任何层次结构中释放。 本文转载于:http://www.diyabc.com/frontweb/news19147.html

ASP。NET控件—控件如何相互关联的更多相关文章

  1. [转载]ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值

    原文地址:http://www.cnblogs.com/yxyht/archive/2013/03/02/2939883.html ASP.NET中TextBox控件设置ReadOnly=" ...

  2. ASP.NET Web数据控件

    ASP.NET Web数据控件 1.数据控件简介 这包括数据源控件和格式设置控件,前者使您可以使用 Web 控件访问数据库中的数据,后者使您可以显示和操作ASP.NET 网页上的数据.  2.数据控件 ...

  3. ASP.NET关于Login控件使用 (转)

    分类: C# 2011-02-21 10:38 4599人阅读 评论(0) 收藏 举报 loginasp.netstringurlserverbutton 今天上网找了一些关于Login控件的使用资料 ...

  4. ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法

    ASP.NET的FileUpload控件默认是不支持服务端的onchange事件的,此时可以用一种变通的方法来实现这一功能. 这就需要借用客户端的onchange事件,调用__doPostBack方法 ...

  5. asp.net中Repeater控件用法笔记

    大家可能都对datagrid比较熟悉,但是如果在数据量大的时候,我们就得考虑使用 repeater作为我们的数据绑定控件了.Repeater控件与DataGrid (以及DataList)控件的主要区 ...

  6. 【转】ASP.NET常用数据绑定控件优劣总结

    转自:http://www.cnblogs.com/Olive116/archive/2012/10/24/2736570.html ASP.NET常用数据绑定控件优劣总结   本文的初衷在于对Asp ...

  7. asp.net取HTML控件值

    asp.net取HTML控件值所有html表单里面的值控件,提交后都是以键值 key=value&key=value&……这样的形式提交给后台. radio也一样,会将选中的radio ...

  8. ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件

    原文:ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件 Login控件它是属于Membership服务的一部分,必须配置Membership提供程 ...

  9. ASP.NET2.0组件控件开发视频 初体验

    原文:ASP.NET2.0组件控件开发视频 初体验 ASP.NET2.0组件控件开发视频 初体验 录了视频,质量不是很好,大家体验下.我会重新录制的 如果不清楚,可以看看http://v.youku. ...

随机推荐

  1. vmware-workstation迁移虚拟机 15pro到12版本

    最近将测试的几台虚拟机进行了迁移,有几个点要注意,分享一下 1.环境介绍: 源服务器-ip-172.16.96.x 目标服务器-ip-172.16.96.x VMware版本-VMwareworkst ...

  2. LightOJ - 1214-Large Division(c++取模 + java的两种写法)

    Given two integers, a and b, you should check whether a is divisible by b or not. We know that an in ...

  3. deepin20 安装英伟达闭源驱动

    第一步.安装深度的"显卡驱动器" 在deepin v20 中默认没有显卡驱动管理器,需要命令行安装,命令如下(刚开始一直出错,当我第一次打开应用商店,就可以安装了,好神奇): su ...

  4. SpringMVC-结果跳转方式

    结果跳转方式 目录 结果跳转方式 1. ModelAndView 2. ServletAPI 3. SpringMVC实现 1. 无需视图解析器 2. 使用视图解析器 1. ModelAndView ...

  5. mobiscroll

    https://docs.mobiscroll.com/3-2-3/jquery/calendar#!options

  6. java 二维码生成(可带图片)springboot版

    本文(2019年6月29日 飞快的蜗牛博客) 有时候,男人和女人是两个完全不同的世界,男人的玩笑和女人的玩笑也完全是两码事,爱的人完全不了解你,你也不要指望一个女人了解你,所以男的不是要求别人怎么样, ...

  7. python 小脚本/自动重复访问网站(快速提高网页访问量)

    来到csdn也快两个月了,前前后后写了20篇博客,但才1800+的访问量,其中恐怕还有300多是我自己点的 有点桑心(┬_┬) 于是打算另辟蹊径,自己刷访问量代码如下,需要自取 import urll ...

  8. EF CodeFirst学习

    EF CodeFirst 真是时光如梦,岁月如歌,自己一不留神就被后浪拍在了沙滩上,就连我要学的这个东西也是12年就在博客园很火了. EF有三种开发模式,DatabaseFirst, ModelFir ...

  9. hadoop和hbase高可用模式部署

    记录apache版本的hadoop和hbase的安装,并启用高可用模式. 1. 主机环境 我这里使用的操作系统是centos 6.5,安装在vmware上,共三台. 主机名 IP 操作系统 用户名 安 ...

  10. (专题一)03 matlab变量及其操作

    给内存单元取名字就可以访问内存单元 变量的命名:变量名区分大小写 标准函数名以及命名方式必须用小写字母 matlab赋值语句有两种表达式 变量的管理       1.预定义变量  ans 是默认赋值变 ...