zoukankan      html  css  js  c++  java
  • HtmlTextWriter学习笔记

    这两天正好在研究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常用方法 

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

    2void 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(); 
    3void 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之前。

    4void Write()和void WriteLine() 
    用于写除标准Html标签以外的所有信息。 
  • 相关阅读:
    IDEA的Debug详解
    websocket学习(转载)
    Shiro授权及注解式开发
    Redis分布式缓存安装和使用
    JEESZ-SSO解决方案
    英语是学习Java编程的基础吗
    深入分析 ThreadLocal 内存泄漏问题
    这些JVM命令配置参数你知道吗?
    安全开发Java动态代理
    学java编程软件开发,非计算机专业是否能学
  • 原文地址:https://www.cnblogs.com/amadeuslee/p/3744584.html
Copyright © 2011-2022 走看看