求助,帮忙解释下HtmlTextWriter类中的Write方法
HtmlTextWriter类中的方法Write如下,
public override void Write(char value)
{
if (this.tabsPending)
{
this.OutputTabs();
}
this.writer.Write(value);
}
没弄明白这个方法最终把数据写到哪里去了,感觉像是进了死循环
------最佳解决方案--------------------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标签以外的所有信息。
转载--希望能帮到你
------其他解决方案--------------------基类为System.Web.UI
应该是向页面输出,也就是在html中显示信息
------其他解决方案--------------------http://tech.it168.com/msoft/2008-06-17/200806170716455_1.shtml 这里也有
------其他解决方案--------------------感谢以上回复,这是通过反编译看到的代码,是的,他最终是发送到客户端由浏览器显示,但这期间还需要经过TCP传输,我想知道在传输到客户端之前,这个方法把数据写在哪里了
------其他解决方案--------------------输出流
------其他解决方案--------------------
上面这个方法怎么解释呢
------其他解决方案--------------------什么叫死循环 。 那个是 override 啊
------其他解决方案--------------------