ASP.NET 2.0服务器控件之复合控件概述
成,其呈现逻辑是由子控件提供的。
据此,在少数较为简单的情况下,复合控件不用重写Render方法,例如,创建一个包含文本框和按钮的复合控件,这时,只要通过类撰写的方法在CreateChildControls中添加相关控件即可,而无需Render方法。但是,在多数情况下,复合控件中既包含子控件,又包含用于格式化和布局的HTML。 针对这种情况,如果只采取类撰写的实现方法,那么很容易造成错误,并且生成的复合控件性能受到很大影响。最好的解决方法是重写CreateChildControls方法,同时也重写Render方法。在CreateChildControls方法中,为复合控件添加子控件;在Render方法中,为HTTP输出流添加用于格式化和布局的HTML。 下面列举了呈现复合控件的关键步骤: ·控件基类继承自CompositeControl基类。这是在ASP.NET 2.0中创建复合控件的关键所在。 ·重写CreateChildControls方法,完成实例化、初始化子控件,并且将子控件添加到控件集合中。 ·重写ICompositeControlDesignerAccessor接口的RecreateChildContrls方法。 ·如果复合控件中存在用于格式化和布局的HTML,那么建议将这些内容写入Render方法中,而不要在CreateChildControls方法中创建和添加所需的LiteralControl实例。另外,在添加相关HTML代码过程中,为了让子控件使用默认生成方法,必须使每个子控件调用RenderControl方法。 为了便于读者更好的理解以上内容,下面举例说明。在此示例中,Register控件使用子控件创建用户界面(UI),用于输入用户信息,以向网站注册。此用户界面包括两个TextBox控件(一个用于输入用户名,另一个用于输入用户的电子邮件地址)和一个用于提交信息的Button控件。Register还将RequiredFieldValidator控件与两个TextBox控件关联起来,以确保用户输入了名称和电子邮件地址。复合控件Register源代码如下所示:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |