- ·上一篇文章:ASP.NET中文件上传下载方法集合(1)
- ·下一篇文章:ASP.NET服务器控件之RenderContents(4)
ASP.NET服务器控件之RenderContents(5)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ ReGISter TagPrefix="Sample" Assembly="UsingRenderContentsControl" Namespace="UsingRenderContentsControl" %>
<!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 id="Head1" runat="server">
<title>使用RenderContents方法实现控件呈现</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<Sample:RenderContentsControl runat="server" ID="CustomerControl" Font-Bold="true" Font-Size="small" ForeColor="Blue" Email="my@mysample.com">我的邮箱地址</Sample:RenderContentsControl>
</div>
</form>
</body>
</html>
如上粗体代码所示,RenderContentsControl控件中设置了Font-Bold、Font-Size、ForeColor、Email 等属性,同时,还在控件标记之间设置了文本内容。当然,如果开发人员将Text属性值设置为相同的文本内容也是可以的。以上代码比较简单,在此不再说明了。
通过这个示例,我们需要重点掌握RenderContents和AddAttributesToRender方法,以及 TagKey属性的使用。提请读者注意的是虽然服务器控件的代码比较复杂,但是结构很简单。切不可被复杂的样式设置和客户端行为代码弄得不知所措,而是要注意体会两个重点方法的使用过程。
在服务器控件开发成功之后,最好能够查看其HTML代码,并将服务器代码和HTML代码作以比较,搞清楚每一条服务器控件代码呈现了什么样的HTML代码。通过这个方法,相信读者能够对服务器控件的呈现方法有更加深刻的体会。下面列举了当用户在浏览器中运行以上页面,并查看相关的Html源文件时可得到的代码:
<!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 id="Head1">
<title> 使用RenderContents方法实现控件呈现</title>
</head>
<body>
<form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTEyNTQwNjQyMDJkZOlJ3PyMGs2hmzn9MU6Ogt9V+5ag" />
</div>
<div>
<a id="CustomerControl" href="mailto:my@mysample.com" style="color:Blue;font-size:Small;font-weight:bold;">我的邮箱地址</a>
</div>
</form>
</body>
</html>
通过观察以上代码可知,自定义服务器控件RenderContentsControl实际呈现的结果是粗体所示部分的代码,其最终呈现为一个表示超链接的<a>标记,其中包括href、Style和文本等属性值。它们的值与Default.aspx文件源代码中, RenderContentsControl控件的属性设置有着密切关系。例如,Email属性值最终呈现为href属性值等等。读者可自行对照查看,这对于理解控件呈现很有益处。
小结
本文主要介绍了WebControl类的一些基本知识,并且利用这些基本知识创建了一个简单的控件呈现实例。实际上,从中读者应该能够总结出来,创建继承自WebControl基类的自定义服务器控件,其中最为重要的重写RenderContents方法。记住这一点是非常重要的。至此,笔者已经利用两篇文章来介绍实现控件呈现的方法。在以后的文章中,将介绍有关为控件实现属性等方面的内容 做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。
<%@ ReGISter TagPrefix="Sample" Assembly="UsingRenderContentsControl" Namespace="UsingRenderContentsControl" %>
<!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 id="Head1" runat="server">
<title>使用RenderContents方法实现控件呈现</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<Sample:RenderContentsControl runat="server" ID="CustomerControl" Font-Bold="true" Font-Size="small" ForeColor="Blue" Email="my@mysample.com">我的邮箱地址</Sample:RenderContentsControl>
</div>
</form>
</body>
</html>
如上粗体代码所示,RenderContentsControl控件中设置了Font-Bold、Font-Size、ForeColor、Email 等属性,同时,还在控件标记之间设置了文本内容。当然,如果开发人员将Text属性值设置为相同的文本内容也是可以的。以上代码比较简单,在此不再说明了。
通过这个示例,我们需要重点掌握RenderContents和AddAttributesToRender方法,以及 TagKey属性的使用。提请读者注意的是虽然服务器控件的代码比较复杂,但是结构很简单。切不可被复杂的样式设置和客户端行为代码弄得不知所措,而是要注意体会两个重点方法的使用过程。
在服务器控件开发成功之后,最好能够查看其HTML代码,并将服务器代码和HTML代码作以比较,搞清楚每一条服务器控件代码呈现了什么样的HTML代码。通过这个方法,相信读者能够对服务器控件的呈现方法有更加深刻的体会。下面列举了当用户在浏览器中运行以上页面,并查看相关的Html源文件时可得到的代码:
<!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 id="Head1">
<title> 使用RenderContents方法实现控件呈现</title>
</head>
<body>
<form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTEyNTQwNjQyMDJkZOlJ3PyMGs2hmzn9MU6Ogt9V+5ag" />
</div>
<div>
<a id="CustomerControl" href="mailto:my@mysample.com" style="color:Blue;font-size:Small;font-weight:bold;">我的邮箱地址</a>
</div>
</form>
</body>
</html>
通过观察以上代码可知,自定义服务器控件RenderContentsControl实际呈现的结果是粗体所示部分的代码,其最终呈现为一个表示超链接的<a>标记,其中包括href、Style和文本等属性值。它们的值与Default.aspx文件源代码中, RenderContentsControl控件的属性设置有着密切关系。例如,Email属性值最终呈现为href属性值等等。读者可自行对照查看,这对于理解控件呈现很有益处。
小结
本文主要介绍了WebControl类的一些基本知识,并且利用这些基本知识创建了一个简单的控件呈现实例。实际上,从中读者应该能够总结出来,创建继承自WebControl基类的自定义服务器控件,其中最为重要的重写RenderContents方法。记住这一点是非常重要的。至此,笔者已经利用两篇文章来介绍实现控件呈现的方法。在以后的文章中,将介绍有关为控件实现属性等方面的内容 做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。
