介绍 这是我关于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. unity 4种实现动态障碍方法

    此文将介绍4种实现动态障碍的方法,2种基于navmesh,2种基于astar算法. 1.基于navmesh. 1.制作场景障碍: a.有几个独立的障碍物,就定义几个user area,即,一个场景仅仅 ...

  2. 大厂运维必备技能:PB级数据仓库性能调优

    摘要:众所周知,数据量大了之后,性能是大家关注的一点,所以我们在业务开发的时候,特别关注性能,做为一个架构师,必须对性能要了解,要懂.才能设计出高性能的业务系统. 一.GaussDB分布式架构 所谓集 ...

  3. C++——百分率

    代码如下: #include <iostream> #include <cmath> using namespace std; int main() { double a; c ...

  4. JVM学习第三天(JVM的执行子系统)之开篇Class类文件结构

    虽然这几天 很忙,但是学习是不能落下的,也不能推迟,因为如果推迟了一次,那么就会有无数次;加油,come on! Java跨平台的基础: 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节 ...

  5. SpringBoot简单(登录/显示/登出)工程下载 使用Thymeleaf输出页面文字

    下载地址:https://files.cnblogs.com/files/xiandedanteng/SessionShare20191226.zip 测试用,画面如下: SpringMVC入门弟子也 ...

  6. Kubernetes笔记(五):了解Pod(容器组)

    Kubernetes 中, 容器总是以 Pod(容器组)的方式进行调度与运行.因此对 Pod 的理解与掌握是学习 Kubernetes 的基础. 理解 Pod Pod(容器组)是 Kubernetes ...

  7. 《Java从入门到失业》第四章:类和对象(4.2):String类

    4.2String类 这一节,我们学习第一个类:String类.String翻译成汉语就是“字符串”,是字符的序列.我们知道,在Java中,默认采用Unicode字符集,因此字符串就是Unicode字 ...

  8. 在 Flutter 中使用 TensorFlow Lite 插件实现文字分类

    如果您希望能有一种简单.高效且灵活的方式把 TensorFlow 模型集成到 Flutter 应用里,那请您一定不要错过我们今天介绍的这个全新插件 tflite_flutter.这个插件的开发者是 G ...

  9. Maven学习总结:几个常用的maven插件

    我们使用maven做一些日常的工作开发的时候,无非是想利用这个工具带来的一些便利.比如它带来的依赖管理,方便我们打包和部署运行.这里几个常见的插件就是和这些工程中常用的步骤相关. maven-comp ...

  10. python的多种魔术方法

    目录 new str & repr iter getitem.setitem.delitem getattr.setattr.delattr call slots 定制类和魔法方法 new s ...