2013-08-27 73 views
0

我想爲我的網站創建一堆Webpart, 所有webpart都有一個共同的特殊邊框。 所以他們的.ascx樣子:Sharepoint Webpart繼承

<div class="my_special_border"> 
    <div class="web_part_content"> 
     bla bla 
    </div > 
</div> 

我想避免在每個網頁組件邊界的重複(主要是因爲它不是一個「格」,但更復雜的佈局)。

我在想webpart的繼承, 這個基地會提供邊框,而且每個inheritent都會提供自己的內容。

所以我有一個「BaseWebpart」,我在其中放置了我的特殊邊框。 如何使派生WebParts的內容進入基礎邊界? 我需要它很容易使用,所以其他開發人員可以通過從我的Base繼承來添加他們自己的webparts。 所以基本上,我不想在DerivedWebpart中的任何特殊代碼(旁邊的繼承)

我該如何實現這一目標?

回答

2

我認爲你必須在basewebpart後面的代碼中執行此操作。在basewebpart中覆蓋Render方法。在base.Render之前,寫下你的2個div的開始標籤。在base.render寫完結束標籤後。

然後讓所有Web部件都從BaseWebPart繼承。

免責聲明:我自己沒有嘗試過,所以我只是在這裏吐口水。但我認爲這將起作用。

+0

我試過了,它工作。我無法使用** HtmlTextWriter ** _WriteBeginTag_/_WriteEndTag_,因爲調用base.Render()弄糟了DOM。所以我用簡單的字符串代替_

_等 – avrahamcool

0

我會嘗試使用不同Web部件使用的常見資源文件。在後面的代碼中,根據需要將Resource文件的內容添加到呈現內容的頂部/底部。