HtmlTextWriter学习笔记

翻译|其它|编辑:郝浩|2007-06-01 09:14:33.000|阅读 1748 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  这两天正好在研究 asp.net 自定义控件制作,HtmlTextWriter 在控件制作中发挥重要作用,能够帮助我快速生成 html 语句。因此决定写下笔记,方便以后查阅。HtmlTextWriter 的名称空间是System.Web.UI,如果在 winform 程序下使用,不要忘了添加 System.Web.dll 引用。

HtmlTextWriter
Html32TextWriter
这两个类不存在继承和被继承关系。HtmlTextWriter 支持 Html4.0 标准,而 Html32TextWriter支持 Html3.2 标准,在 msdn 中一般不建议将 Html32TextWriter 实例话,它仅为支持低版本的浏览器而设计。

HtmlTextWriter
初始化

HtmlTextWriter 的构造函数要求必须传递一个与 TextWriter 接口兼容的实例。大家可以根据需要选择合适的 TextWriter 接口实现类,因为该类的选择将决定最终生成的 Html 文本的输出方式,例如我想把结果输出到一个 TextBox 中,于是我就使用了 StringWriter 类的实例作为参数传入:
   StringWriter sw=new System.IO.StringWriter();
   HtmlTextWriter writer=new HtmlTextWriter(sw);
如果要获得结果,只需要使用 sw.toString() 就可以了。注意,HtmlTextWriter 本身不提供输出方法或属性。

HtmlTextWriter
常用方法

1. void RenderBeginTag(HtmlTextWriterTag tagKey)
   
用于创建 Html 开始标签,如<body>,这里的 HtmlTextWriterTag 是一个枚举类型,里面有所有的标准Html4.0标签枚举值,如果我要使用添加body标签,就是RenderBeginTag(HtmlTextWriterTag.Body)

2. void RenderEndTag()
   
RenderBeginTag 一一对应,有几个 RenderBeginTag 就必须有几个 RenderEndTag,当然,RenderEndTag 不一定要马上跟在对应的 RenderBeginTag 之后,要根据 Html 语句决定。如下面的例子:
<html>
    <head></head>
    <body></body>
</html>
上面一段是 html 基本结构,使用 HtmlTextWriter 生成就是
   writer.RenderBeginTag(HtmlTextWriterTag.Html);
   writer.RenderBeginTag(HtmlTextWriterTag.Head);
   writer.RenderEndTag();
   writer.RenderBeginTag(HtmlTextWriterTag.Body);
   writer.RenderEndTag();
   writer.RenderEndTag();
3. void AddAttribute()
   
用于添加标签的属性,例如 <img> 标签的 url 属性、width 属性等。使用该方法时要注意一点,AddAttribute 语句必须出现在对应的 RenderBeginTag 的前面,请看下面的例子:
   writer.AddAttribute("url","../xxx.gif");
   writer.AddAttribute("width","50");
   writer.AddAttribute("height","50");
   writer.RenderBeginTag(HtmlTextWriterTag.Img);
   writer.RenderEndTag();

 上面一段语句将添加<img url="../xxx.gif" width="50" height="50" />,可以发现所有的 img 标签属性的添加都在 RenderBeginTag 之前。

4. void Write() void WriteLine()
用于写除标准 Html 标签以外的所有信息。 

 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP