2009-03-03 13 views
4

我在c#中爲sharepoint創建了一個webpart。它基本上是一個帶有文本框,文字,驗證器和按鈕的窗體。使用c#爲webpart中的sharepoint配置表格

即時通訊不知道如何呈現此表單,使其看起來很漂亮。 佈局等完全在這個c#類中完成。

目前上手IM只是overrinding CreateChildControls()方法 和添加使用像每個表單控件:this.Controls.Add(submitButton);

就如何最好地佈局這種形式的任何想法?

謝謝。

回答

3

創建自定義的webpart我也喜歡通過重寫的CreateChildControls(實現它們)渲染()方法。在Render()方法我有完全控制的HTML輸出,我可以通過調用this.someInControlControl.RenderControl(作家)呈現我的內部控件。

對html輸出的完全控制也使得使用CSS對html進行風格設計變得很容易。正如其他人所暗示的那樣,使用外部CSS文件並將html應用於html元素上的屬性或ASP.NET Web控件上的CssClass屬性。

當我實現webparts時,不需要特殊的品牌,我更喜歡重用由SharePoint定義的CSS類。這將確保我的web部件在外觀上與SharePoint提供的webpart類似,並保持一致的外觀和風格。

當使用SharePoint定義的CSS樣式時,您應該知道您的html輸出。某些CSS類需要特定的html結構才能正確呈現。您始終可以使用瀏覽器「查看源代碼」來檢查您嘗試模仿的SharePoint元素的html。

1

我建議從現有的sharepoint頁面抓取源代碼並使用sharepoint定義的樣式。 This link to the styles in 2003已過時,但仍然是一個很好的入門指南。大部分的CSS類名稱都沒有改變。

0

在我的Web部件包括我在溶液css文件,並使用類似注入他們的頁面:

this.Page.Header.RegisterCss("/_layouts/path/to/css/file.css", false); 
0

可以重寫RenderContents(...)方法來手動呈現在HTML反正你想要。這包括添加您想要/使用的任何css includes,腳本包含等。

您可以將子控件渲染爲字符串,然後輸出它們,但您可能不應該調用base.RenderContents(...)方法。

只要確保你不要忘記渲染你的子控件。

0

如果在設計時看到它很重要,請使用SmartPart,它將用戶控件嵌入到Web部件中。 (如果您不知道,用戶控件可以使用Visual Studio中的工具進行設計。)

如果您更喜歡手寫代碼,那麼您就處於正確的軌道上。只需在CreateChildControls()方法中爲您的控件創建和設置初始屬性,並像以前一樣使用this.Controls.Add()

在這兩種情況下,儘可能使用CssClass屬性,以便您可以在CSS文件中修飾外觀而不必重新編譯。您可以可以硬編碼CSS類名稱,但最好使用Web部件屬性或外部配置源來存儲這些名稱。在您的母版頁中引用CSS文件或使用本答覆中提到的其他技術將其注入到頁面中。

MSDN文章Web Parts in Windows SharePoint ServicesCreating a Basic Web Part也可能有所幫助。