2009-01-31 67 views
0

我正在WinForm上運行的代碼創建一些html。我想創建下面的HTML:如何使HtmlTextWriter對象的縮進使用空格而不是製表符?

<html> 
<body> 
    <div> 
     <p>foo</p> 
    </div> 
</body> 
</html> 

我使用System.Web.UI.HtmlTextWriter類來做到這一點,像這樣:

System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(); 
htmlWriter.WriteFullBeginTag("html"); 
htmlWriter.WriteLine(); 
htmlWriter.WriteFullBeginTag("body"); 
htmlWriter.WriteLine(); 
htmlWriter.Indent++; 
htmlWriter.WriteFullBeginTag("div"); 
htmlWriter.WriteLine(); 
htmlWriter.Indent++; 
htmlWriter.WriteFullBeginTag("p"); 
htmlWriter.Write("foo"); 
htmlWriter.WriteEndTag("p"); 
htmlWriter.Indent--; 
htmlWriter.WriteLine(); 
htmlWriter.WriteEndTag("div");  
htmlWriter.Indent--; 
htmlWriter.WriteLine(); 
htmlWriter.WriteEndTag("body"); 
htmlWriter.WriteLine(); 
htmlWriter.WriteEndTag("html"); 

這一切正常,但是,當我在文本編輯器中打開生成的html,因爲它使用了tab字符,所以我的縮進看起來對我來說太遠了。有沒有辦法強制這個班級使用多個空格呢?

回答

3

我不是System.Web.UI的傢伙,但從MSDN documentation,它看起來像你可以提供用於縮進的字符作爲HtmlTextWriter構造函數的第二個參數。因此,要獲得4個空格而不是製表符:

System.Web.UI.HtmlTextWriter htmlWriter = 
    new System.Web.UI.HtmlTextWriter(yourTextWriter, " "); 
+0

哇...我覺得自己像嘴巴喘息一樣。謝謝! – aranasaurus 2009-01-31 03:54:00

1

David在技術上已解答您的問題,但該路徑會導致黑屏。未編譯客戶端Web代碼。如果你使用四個空格而不是製表符,那麼你做錯了。

即使影響很小,什麼時候可以接受400%的效率?如果你想讓事情慢一點而沒有理由,你也可以隨意地將Thread.Sleep()調用添加到你的服務器端代碼中。

修復您的文本編輯器的設置。

相關問題