|
可能有一些读者会问,如果将服务器控件呈现的多行代码的顺序变化一下,是否会有什么不同呢?例如,假设首先依次应用RenderBeginTag、Write、RenderEndTag方法,然后再调用AddAttribute和AddStyleAttribute方法,那么会显示相同的效果吗?答案是否定的。这里需要强调的是:在呈现控件的过程中,首先要定义服务器控件的属性和CSS样式等内容,然后再定义服务器控件的主体内容,这种顺序不能改变的。
另外,如果读者感兴趣可以在代码中实现一个Text属性,用于获取或者设置控件所显示的文本。这样,在Render方法中,使用Write方法输出的"浏览网站"文字内容则可由Text属性代替。
下面列举了为使用以上的自定义服务器控件,而创建的Default.aspx文件源代码。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register TagPrefix="Sample" Assembly="UsingRenderControl" Namespace="UsingRenderControl" %> <!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>使用Render方法实现控件呈现</title> </head> <body> <form id="form1" runat="server"> <div> <Sample:RenderControl runat="server" ID="CustomerControl" LinkUrl="http://www.microsoft.com/"> </Sample:RenderControl> </div> </form> </body> </html> | 以上代码比较简单,其中主要声明了自定义服务器控件RenderControl,并设置其LinkUrl属性值为http://www.microsoft.com,即微软站点地址。
当用户在浏览器中运行以上页面,并查看相关的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> <title> 使用Render方法实现控件呈现</title> </head> <body> <form name="form1" method="post" action="Default.aspx" id="form1"> <div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzMyMTY5NTU2ZGQQYrLd/G+vm1h41r2CEkxID63o5g==" /> </div> <div> <a href="http://www.microsoft.com/" style="color:red;">浏览网站</a> </div> </form> </body> </html> | 通过观察以上代码可知,自定义服务器控件RenderControl实际呈现的结果是粗体所示部分的代码,其最终呈现为一个表示超链接的<a>标记。
小结
本文首先介绍了HtmlTextWriter类的基本知识,然后讲解了使用Render方法实现控件呈现的应用。在随后的一篇文章中,笔者将说明另外一种实现控件呈现的方法。从服务器控件开发技术总体而言,控件呈现技术是开发过程中最为常用,也是最为简单的内容。建议读者能够熟练掌握其中的内容。
[上一页] [1] [2] [3]
|