将WriteBeginTag和RenderBeginTag混合在同一代码中有什么问题吗?

时间:2011-02-28 16:07:49

标签: asp.net htmltextwriter

我正在为非标准浏览器(Polycom Microbrowser)生成XHTML。我想使用XhtmlTextWriter,但它忽略了表上的border属性。这通常是正确的事情,因为你应该使用CSS来设置边框。唉,Polycom不支持CSS。

所以当我渲染开始和结束表标签时,我需要使用HtmlTextWriter.WriteBeginTag / WriteEndTag而不是HtmlTextWriter.RenderBeginTag / RenderEndTag。

    protected void RenderTableBegin(HtmlTextWriter writer)
    {
        //writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
        //writer.RenderBeginTag(HtmlTextWriterTag.Table);
        writer.WriteBeginTag("table");
        writer.WriteAttribute("border", "0");
        writer.Write(HtmlTextWriter.TagRightChar);
    }

    protected void RenderTableEnd(HtmlTextWriter writer)
    {
        writer.WriteEndTag("table");
        //writer.RenderEndTag();
    }

我的代码中的其他地方,我正在使用HtmlTextWriter.RenderBeginTag / RenderEngTag。混合这些是否有任何已知问题?我可以,只要我使用匹配的电话吗?

1 个答案:

答案 0 :(得分:0)

我不相信存在问题,但呈现标记的方式有所不同。如果你想控制进程,你也可以在writer.Write语句中自己渲染整个HTML。

writer.Write("<table border=\"0\">");

如果您遇到问题,请确保最终输出。我知道最大的区别在于渲染过程的发生方式(对于渲染开始标记,必须先添加属性,而writebegintag会在您之后添加属性)。

HTH。