科技时代新浪首页 > 科技时代 > 学园 > 正文

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


http://www.sina.com.cn 2006年08月07日 09:32 天极yesky


  另外,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所示。


ASP.NET2.0服务器控件之复合控件概述(3)
图2 应用程序效果图

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

  小结

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

[上一页] [1] [2] [3]

本文导航:
·复合控件概述
·典型应用
·小结

发表评论

爱问(iAsk.com) 相关网页共约511



评论】【论坛】【收藏此页】【 】【多种方式看新闻】【下载点点通】【打印】【关闭




科技时代意见反馈留言板 电话:010-82628888-5595   欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2006 SINA Inc. All Rights Reserved

新浪公司 版权所有