当前位置:中国站长下载文章中心网页编程.NET编程 → ASP.NET服务器控件之RenderContents(5)

ASP.NET服务器控件之RenderContents(5)

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-14 8:34:13
     <%@ 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)。