[英]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.