上一篇文章介绍了实现3种形式复杂属性的具体方法。为了加深读者对于这些 实现方法的理解深度,本文详细讲解了一个利用ASP.NET 2.0技术创建复杂属性 的示例。
1. 示例应用
本文所实现的示例很简单,其核心是通过实现自定义服务器控件的连字符形 式复杂属性来说明复杂属性的实现方法,其中使用了上一篇文章中介绍的内容。 示例效果图如图1所示。
图1
如图1所示,页面显示了公司所在城市、姓名、性别和职务信息。这些内容是定义服务器控件呈现的结果,其中公司所在城市由简单属性City设置,姓名、性 别和职务由复杂属性Employee设置,其中包括子属性Name,Sex和Title设置。下 面列举了示例应用程序的Default.aspx文件源代码。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Namespace="WebControlLibrary" Assembly="WebControlLibrary" TagPrefix="Cp" %>
<!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>
<Cp:Company ID="demo1" runat="server" City="重庆" Employee-Name=" 小李" Employee-Sex="男" Employee-Title="销售经理" />
</div>
</form>
</body>
</html>
如上代码所示,主要设置了@ Register指令和自定义服务器控件Company。前 者用于为页面引入自定义服务器控件Company,从而实现控件在页面中的应用。 在自定义服务器控件Company中主要设置了City、Employee-Name、Employee-Sex 和Employee-Title。同时,在开发人员编码过程中将会发现,以上4个属性均为 Visual Studio 2005的智能感知功能所支持。
另外,读者还可以以另一种非连字符形式设置Company控件属性。具体代码如 下所示:
<Cp:Company ID="Company1" runat="server" City="重庆">
<Employee Name="小李" Sex="男" Title="销售经理">
</Employee>
</Cp:Company>
实际上,以上设置Company控件属性的方法与前文利用连字符设置属性的方法 是完全一致的。对于所有连字符形式属性,可以任意使用二者之一。如果是基于 代码可读性的角度而言,后者比前者的可读性更强一些。