温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ASP.NET中如何使用CompositeControl类

发布时间:2021-07-15 15:44:55 来源:亿速云 阅读:124 作者:Leah 栏目:编程语言

ASP.NET中如何使用CompositeControl类,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

用于解决设计时问题的 CompositeControl

随 ASP.NET 2.0 一同提供了一个名为 CompositeControl 的基类。因此,新的非数据绑定复合控件应该从该类派生而不是从 WebControl 派生。在开发控件方面,CompositeControl 的用法变动不大。您仍然需要替换 CreateChildControls 并按先前所述方式编码。那么 CompositeControl 的作用是什么?让我们先从其原型着手:

public class CompositeControl :WebControl,   INamingContainer,   ICompositeControlDesignerAccessor

使用该类就无需再用 INamingContainer 装饰控件,但这实际上并不是很重要,因为接口只是一个标记并且不包含任何方法。更为重要的是,该类实现了一个名为 ICompositeControlDesignerAccessor 的全新接口。

public interface ICompositeControlDesignerAccessor  {  void RecreateChildControls();  }

此接口由复合控件的标准设计器用于在设计时重建控件树。以下是 CompositeControl 中方法的默认实现过程。

void ICompositeControlDesignerAccessor.RecreateChildControls()  {  base.ChildControlsCreated = false;  EnsureChildControls();  }

简言之,如果您从 CompositeControl 派生复合控件,就不会遇到设计时的故障,而且无需采用技巧和妙计就可以使控件在运行时和设计时都能正常运行。

要充分理解此接口的重要性,可试以寄存某 LabelTextBox 复合控件的示例页为例,并将其转换为设计模式。控件在运行时工作正常,但在设计时却不可见。

ASP.NET中如何使用CompositeControl类

图 5:只有复合控件从 CompositeControl 派生才对它们进行特殊的设计时处理

如果只是用 CompositeControl 替换 WebControl,则控件在运行时仍然保持正常工作,而在设计时也会运行良好。

ASP.NET中如何使用CompositeControl类

图 6:在设计时运行良好的复合控件

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI