asp.net組件(2):override Render use HtmlTextWriter

asp.net組件(2):override Render use HtmlTextWriter

在 前一篇 組件(1) 中加入以下代碼
Render主要用來  繪製控件.
HtmlTextWriter 用來將標誌輸出到瀏覽器

        protected override void Render(HtmlTextWriter writer)
        
{
            
//base.Render(writer);
            
            
//第一種 使用writer.Write
            
//writer.Write("<table width='500' border='1'><tr><td align='center'>" + Name + "今年" + Age.ToString() + "歲</td></tr></table>");
            
//HtmlTextWriter.Write 將提供string輸出
            
//產生的html源代碼格式爲<table width='500' align='center' border='1'><tr><td align='center'>阿鵬今年20歲</td></tr></table>
    
            
//第二種 使用writer.WriteLine
            /*writer.WriteLine("<table width='500' border='1'>");
            writer.WriteLine("<tr>");
            writer.WriteLine("<td align='center'>");
            writer.WriteLine(Name + "今年" + Age.ToString() + "歲");
            writer.WriteLine("</td>");
            writer.WriteLine("</tr>");
            writer.WriteLine("</table>");
*/

            
//HtmlTextWriter.WriteLine 將提供string按行輸出
            /*產生的html源代碼格式爲<table width='500' align='center' border='1'>
            <tr>
            <td align='center'>
            阿鵬今年20歲
            </td>
            </tr>
            </table>
*/


            writer.AddStyleAttribute(HtmlTextWriterStyle.Width, 
"500px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.BorderStyle, 
"solid");
            writer.AddStyleAttribute(HtmlTextWriterStyle.BorderWidth, 
"1px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.BorderColor, 
"#000");
            writer.RenderBeginTag(HtmlTextWriterTag.Table);
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, 
"center");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(Name 
+ "今年" + Age.ToString() + "");
            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderEndTag();
            
/*產生的html源代碼格式爲<table style="width:500px;border-style:solid;border-width:1px;border-color:#000;">
            <tr>
            <td style="text-align:center;">阿鵬今年20歲</td>
            </tr>
            </table>
*/

        }

注意一點:AddStyleAttribute在RenderBeginTag標籤之前
<table width="500"></table>
但我們使用 HtmlTextWriter 順序是相反的
writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "500px");
writer.RenderBeginTag(HtmlTextWriterTag.Table);
這個其實大家運行下二者查看下html源代碼 就會發現差別.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章