2010-02-01 32 views
0

我想改變一些的HtmlTextArea的屬性中,我在C#正在開發一個SharePoint Web部件。 HtmlTextArea被用作一些我正在使用的Sql Server 2005數據的自定義顯示,並且我想更改字體,顏色等,並使其成爲只讀。我看到有幾個方法,如HtmlTextArea.Attributes.Add,HtmlTextArea.Attributes.AddAttributes和HtmlTextArea.Attributes.CssStyle,但我不知道如果這些都是正確的人使用,也不知道如何使用它們。我知道,使用ASP.NET TextArea控件,我可以簡單地使用內聯CSS,所以我試圖找出一種方法來在C#中設置內聯CSS。ASP.NET HtmlTextArea屬性和換行符

另外,我想找出一種方法來添加一個換行符在控件之間,只是在放置輔助。我已經在CreateChildControls中列出了所有的控件,但我沒有看到如何控制它們的位置。舉例來說,我有這樣的:

protected override void CreateChildControls() 
    { 
     customers = new DropDownList(); 
     customers.ID = "customers"; 
     Controls.Add(customers); 

     machines = new DropDownList(); 
     machines.ID = "machines"; 
     Controls.Add(machines); 

     specsOutput = new HtmlTextArea(); 
     specsOutput.ID = "specsOutput"; 
     Controls.Add(specsOutput); 
    } 

我想對於要顯示的DDL下面的HtmlTextArea。感謝大家的幫助。

回答

2

要添加內聯CSS,使用Attributes.Add("style", "color: white; background-color: black");等等,等等

您可以添加LiteralControls在您的自定義控件的佈局提供幫助。

customers = new DropDownList(); 
customers.ID = "customers"; 
Controls.Add(customers); 
Controls.Add(new LiteralControl("<br />")); 
+0

完美!非常感謝。 – 2010-02-02 15:06:15

1

爲了管理控制如何呈現,您可以覆蓋Render事件,像這樣:

protected override void Render(HtmlTextWriter writer) 
{ 
    customers.RenderControl(writer); 
    writer.Write("<br />"); 
    machines.RenderControl(writer); 
    writer.Write("<br />"); 
    specsOutput.RenderControl(writer); 
} 

由於womp提到,有可能通過使用Attributes.Add方法添加在線風格在控件上。

+0

我實際上最初是通過這種方式提供控制的;我只是發現有一個簡單的佈局像我有(二DDL和一個HtmlTextArea)和相當簡單的渲染,我喜歡覆蓋的CreateChildControls,讓這一切在一個行權呈現的正前方方法。 – 2010-02-02 14:58:00

+0

很酷。請記住,當你這樣做時,你需要創建許多對象來渲染,並且需要按照你想渲染的順序來創建它們。 – CAbbott 2010-02-02 16:05:40

0

如果要移動從建立你的網絡的一部分UI的這種頗爲尷尬的方式離開,您可以加載ASCX和Web零件設計體驗會像任何用戶控制..好得多。

example

+0

謝謝。我已經看過這樣做的事情,這可能是我將來要採用的路線,但是這個網絡部分幾乎已經結束了,所以我要用這種方法完成它。 – 2010-02-02 14:56:21