簡體   English   中英

使用c#為sharepoint中的webpart布局表單

[英]laying out a form using c# for a webpart in sharepoint

我在c#中為sharepoint創建了一個webpart。 它基本上是一個帶有文本框,文字,驗證器和按鈕的表單。

我不知道如何渲染這個表單,使它看起來很漂亮。 布局等完全在這個c#類中完成。

現在開始我只是重寫CreateChildControls()方法並使用類似的東西添加每個表單控件: this.Controls.Add(submitButton);

關於如何最好地布局這個表格的任何想法?

謝謝。

在創建自定義webpart時,我也更喜歡通過重寫CreateChildControls()Render()方法來實現它們。 Render()方法中,我完全控制了html輸出,我可以通過調用this.someInnerControl.RenderControl(writer)來渲染我的內部控件。

完全控制html輸出也可以很容易地使用CSS設置html的樣式。 正如其他人建議的那樣,使用外部CSS文件並將styes應用於ASP.NET Web控件上的html元素或CssClass屬性上的class屬性。

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

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

我建議從現有的sharepoint頁面獲取源代碼並使用sharepoint定義的樣式。 這個2003年風格的鏈接很舊,但仍然是一個很好的入門指南。 大多數CSS類名都沒有改變。

在我的Web部件中,我在解決方案中包含css文件,並使用以下內容將它們注入頁面:

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

您可以覆蓋RenderContents(...)方法,以便以任何方式手動呈現HTML。 這包括添加您想要/使用的任何css包括,腳本包括等。

您可以將子控件呈現為字符串,然后輸出它們,但您可能不應該調用base.RenderContents(...)方法。

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

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

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

在這兩種情況下,盡可能使用CssClass屬性,這樣您就可以修改CSS文件中的外觀而無需重新編譯。 可以對CSS類名進行硬編碼,但最好使用Web部件屬性或外部配置源來存儲這些屬性。 在您的母版頁中引用CSS文件,或使用本答案中提到的其他技術將其注入頁面。

Windows SharePoint Services創建基本 Web部件中的MSDN文章Web部件也可能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM