HtmlTextWriter学习笔记

news/2024/7/8 4:41:15

这两天正好在研究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开始标签,如,这里的HtmlTextWriterTag是一个枚举类型,里面有所有的标准Html4.0标签枚举值,如果我要使用添加body标签,就是RenderBeginTag(HtmlTextWriterTag.Body)

2. void RenderEndTag()
    与RenderBeginTag一一对应,有几个RenderBeginTag就必须有几个RenderEndTag,当然,RenderEndTag不一定要马上跟在对应的RenderBeginTag之后,要根据Html语句决定。如下面的例子:

   
   

上面一段是html基本结构,使用HtmlTextWriter生成就是
   writer.RenderBeginTag(HtmlTextWriterTag.Html);
   writer.RenderBeginTag(HtmlTextWriterTag.Head);
   writer.RenderEndTag();
   writer.RenderBeginTag(HtmlTextWriterTag.Body);
   writer.RenderEndTag();
   writer.RenderEndTag();
3. void AddAttribute()
    用于添加标签的属性,例如标签的url属性、width属性等。使用该方法时要注意一点,AddAttribute语句必须出现在对应的RenderBeginTag的前面,请看下面的例子:
   writer.AddAttribute("url","../xxx.gif");
   writer.AddAttribute("width","50");
   writer.AddAttribute("height","50");
   writer.RenderBeginTag(HtmlTextWriterTag.Img);
   writer.RenderEndTag();

 上面一段语句将添加,可以发现所有的img标签属性的添加都在RenderBeginTag之前。

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





http://www.niftyadmin.cn/n/3656198.html

相关文章

开源webrtc源码分析

想写一篇分析webrtc源码的文章,梳理了半天,发现webrtc太大了,不知道从哪里开始。那就先从android源码开始吧,纯手打,如有不对之处,请及时指正。 java层代码分析 api目录:提供android端可以直接…

php中session常用函数

session_start() 该函数表明本页需要使用session,如果不使用该函数,将有可能导致其他函数和session变量无法正常使用,类似于初始化函数。 session_register() 该函数用于注册普通变量为Session变量,如 $a1; session_register(&quo…

U盘无法识别

之前用U盘启动装centos 系统 ,把一个centos7.2的系统刻录到了一个8G的U盘,之后是centos安装成功了 ,却发现在windows下不认识U盘了。 解决方法如下(在linux下操作): 查看U盘加载文件 fdisk -l先卸载掉 um…

kurento服务器搭建

Kurento media server服务搭建一、下载ubuntu18.04服务器1、安装gunpg2、确定ubuntu版本3、设置变量4、添加key5、设置kurento.list6、安装kurento media server7、启动/停止/状态/重启二、kurento tutorial java服务搭建三、kurento相关配置1、Kurento Media Server 日志2、Ku…

《精通.Net核心技术》

共两册 《精通.Net核心技术——原理与架构》 价格不明 《精通.Net核心技术——高级特性》 价格:79(附光盘) 飞思科技产品研发中心编著 电子工业出版社

check_stun_auth: user cece credentials are incorrect

记录部署coturn服务器的一个问题,coturn的部署记录可参考https://blog.csdn.net/Martin_chen2/article/details/101641584: coturn服务器部署后,执行turnserver -a -f -usercece:123456 -r Guangdong后,运行移动端demo&#xff0…

php安装配置

IIS环境我们以php安装目录c:/php为例,首先找到c:/php/sapi/php4ts.dll文件,拷贝到windows系统目录(WindowsXP中为%windows%/system32目录)。 在IIS中添加文件关联,将.php文件映射到c:/php/sapi/php4isapi.dll。 然后编…