HtmlTextWriter学习笔记

转载 2006年06月09日 16:56:00
这两天正好在研究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标签以外的所有信息。 

自定义控件(4)HtmlTextWriter的三个最佳拍档

上篇文章深入的学习了HtmlTextWriter,这篇文章我来讲讲HtmlTextWriter的三个最佳拍档。HtmlTextWriterTag,HtmlTextWriterAttribute,Htm...
  • qq_29176825
  • qq_29176825
  • 2017年08月01日 14:49
  • 70

Linux学习笔记之——起始篇

摘要:学习笔记目录、方便以后回顾、没有什么捷径可走、不断的记录、总结、练习、coding、coding。...
  • chenghuaying
  • chenghuaying
  • 2014年03月31日 16:47
  • 4541

在计算机学习,善用“笔记软件”

为知笔记 Linux 版 2015-12-03 产品更新 提示:软件的名称由wiznote修改为WizNote,在终端命令行下需要使用WizNote来打开程序。 更新日志: 2.3.2 版本(201...
  • Lina_ACM
  • Lina_ACM
  • 2016年08月03日 10:41
  • 800

斯坦福机器学习网易公开课笔记1

之前在coursera上看了Andrew Ng的机器学习课程,那个课程比较简明,适合对机器学习有一个整体的印象,但是很多细节的内容和推导都忽略了。现在想要了解机器学习更多,所以开始看Andrew Ng...
  • zhonglj0314
  • zhonglj0314
  • 2017年02月20日 09:57
  • 524

《Java JDK8学习笔记》读书笔记(4)

第4章 认识对象 学习目标  区分基本类型与对象类型  了解对象与引用的关系  从打包器认识对象  以对象观点看待数组  认识字符串的特性...
  • mouyong
  • mouyong
  • 2016年04月18日 20:10
  • 4406

Angularjs 学习笔记(一)基础

1.简介: Angular JS (Angular.JS) 是一组用来开发Web页面的框架、模板以及数据绑定和丰富UI组件。它支持整个开发进程,提供web应用的架构,无需进行手工DOM操作。 Ang...
  • qq_25178609
  • qq_25178609
  • 2016年10月02日 16:13
  • 468

myBatis学习笔记(1)——快速入门

在项目中使用myBatis 导入jar包 在src下创建配置文件
  • u010837612
  • u010837612
  • 2015年05月12日 11:06
  • 887

Spring MVC 学习笔记(一)

(* 笔记内容均来自 尚硅谷 佟刚老师的视频,例子是在学习中照着敲的) 内容概要 • 1.SpringMVC概述 • 2.SpringMVC的HelloWorld • 3.使用@RequestMapp...
  • u011870547
  • u011870547
  • 2016年01月07日 14:50
  • 1694

操作系统学习笔记(七)

关于存储器管理
  • qq_24282081
  • qq_24282081
  • 2017年04月26日 21:23
  • 320

Andrew Ng机器学习笔记1

吴恩达机器学习课程的学习笔记~
  • panglinzhuo
  • panglinzhuo
  • 2016年04月26日 16:15
  • 1283
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HtmlTextWriter学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)