介绍 这是我关于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. Python基本

    Python基本规则 1.面向对象的跨平台的编程语言 2.文件类型是.py, 3.一个文件是一个模块module,运行整个文件 4.不支持非英文字符,区分大小写 5.一行是一条语句,多条语句写一行用; ...

  2. es6使用箭头函数需要注意的问题

    this问题 箭头函数没有它自己的this值,箭头函数内的this值继承自外围作用域,谁定义的函数,this指向谁 箭头函数要实现类似纯函数的效果,必须剔除外部状态.所以箭头函数不具备普通函数里常见的 ...

  3. 简单说说TCP三次握手、四次挥手机制

    1.什么是TCP TCP全称Transmission Control Protocol(传输控制协议),是一种面向连接的.可靠的.基于字节流的传输层通信协议.是为了在不可靠的互联网络上提供可靠的端到端 ...

  4. Activiti7 启动流程实例

    package com.itheima.activiti; import org.activiti.engine.ProcessEngine; import org.activiti.engine.P ...

  5. 判断Java程序是否在jar中运行

    URL url = TextRenderer.class.getResource(""); String protocol = url.getProtocol(); boolean ...

  6. Kubernetes-12:Secret介绍及演示

    Secret介绍 Secret存在的意义 Secret解决了密码.token.密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中,可以以Volume或者环境变量的方式使用 ...

  7. 再深入一点|binlog和relay-log到底长啥样?

    上一篇mysql面试的文章之后收到不少朋友的意见,希望深入讲讲复制.日志的格式这些,今天,我们就来深挖一下mysql的复制机制到底有哪一些,以及binlog和relay-log的结构到底是什么样子的. ...

  8. Go语言 | 并发设计中的同步锁与waitgroup用法

    今天是golang专题的第16篇文章,我们一起来聊聊golang当中的并发相关的一些使用. 虽然关于goroutine以及channel我们都已经介绍完了,但是关于并发的机制仍然没有介绍结束.只有go ...

  9. visual studio项目多级引用不拷贝dll的问题

    最近碰到一个visual studio项目多级引用不拷贝dll的问题,花了很久查了很多资料,特此记录 A项目引用B项目, B项目引用C项目,C项目引用ef及oracle.ef using Oracle ...

  10. [极客大挑战 2019]Havefun wp

    很少见的很简单的一道题 查看源代码 获得一段被注释的代码 直接?cat=dog即可得flag