科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件ASP.NET 2.0服务器控件之复合控件概述(3)

ASP.NET 2.0服务器控件之复合控件概述(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文重点介绍有关复合控件的概念、创建方法等理论,然后,通过一个典型示例加深读者对于复合控件创建方法的理解。

作者:金属边缘 来源:天极开发 2007年11月6日

关键字: ASP.NET 服务器控件 复合控件 Windows

  • 评论
  • 分享微博
  • 分享邮件
另外,Register类中重写了来自不同对象的3个方法。

  (1)Render方法隶属于Control基类,在本例中主要在该方法中定义了一些与控件布局相关的HTML等内容。

  (2)CreateChildControls方法隶属于Control基类。在本示例中通过重写该方法,实现了将子控件添加到复合控件树中的任务。请读者牢记:每当需要Controls集合时,例如,在数据绑定期间(如果适用),服务器控件结构都会依赖对CreateChildControls的调用。为此,必须在CreateChildControls方法中添加子控件。

  (3)RecreateChildControls方法来自CompositeControl基类的ICompositeControlDesignerAccessor接口。通过实现这个方法可使复合控件的设计器可以在设计时重新创建该控件的子控件。

  下面列举了为测试Register控件而创建的Default.aspx页面源代码。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register TagPrefix="Sample" Assembly="WebControlLibrary" Namespace="WebControlLibrary" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>实现复合控件呈现</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<Sample:Register id="demo1" runat="server" ButtonText="注册" EmailLabelText="电子邮件" NameLabelText="用户名" EmailErrorMessage="不能为空" NameErrorMessage="不能为空" />
</div>
</form>
</body>
</html>

  示例效果如图2所示。


图2 应用程序效果图

  如图2所示,复合控件Register在页面中显示了文本、文本框、按钮等,同时,还提供了输入验证功能。然而,当用户单击“注册”按钮之后,即使在用户名和电子邮件的输入都通过验证的情况下,页面仍然没有引发相应的事件处理程序。这是由于在本例中没有实现按钮的事件处理内容。有关复合控件的事件实现将在随后的文章中进行详细讲解。

  小结

  复合控件是通过将其他控件聚合在某一公用API下创建而成的控件。复合控件将保留自己子控件的活动实例,并且不仅限于呈现这些实例。使用复合控件可以带来几点好处,例如可以简化对事件和回发的处理。然而,本文并没有对复合控件的事件实现等相关内容进行讲解,请读者继续关注本系列的随后文章。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章