2011-03-28 70 views
13

我在Sharepoint 2010中創建了一個Web部件,我需要將「Chrome Type」屬性設置爲「無」值。覆蓋Chrome類型Web部件

我正在尋找方法來強制組合框爲「無」,或覆蓋C#類中的「Chrome類型」,但我沒有找到任何方法來做到這一點。設置此屬性的最佳方法是什麼?

Override Chrometype

回答

7

您應該可以修改代碼的Web部件的.ChromeType財產。

請記住,您在網絡零件生命週期中執行此操作的位置。

如果您將其作爲Render方法的一部分來執行,將會太晚 - 此時chrome已經被繪製。

另一方面,如果您早期做到這一點,那麼當SharePoint應用工具部件中的設置時,您的設置將被覆蓋。

看看像OnPreRender事件那樣做。

27

另一種選擇是使用.webpart文件將此指定爲使用ChromeType屬性的默認值。您可以在Visual Studio解決方案中執行此操作(如下所示),也可以直接在Web部件庫中編輯.webpart文件。

由於這是一個沒有代碼的方法,它似乎比C#路由更簡單。

嘗試這種情況:

<?xml version="1.0" encoding="utf-8"?> 
<webParts> 
    <webPart xmlns="http://schemas.microsoft.com/WebPart/v3"> 
    <metaData> 
     <type name="<<ClassName>>, $SharePoint.Project.AssemblyFullName$" /> 
    <importErrorMessage>$Resources:core,ImportErrorMessage;</importErrorMessage> 
</metaData> 
<data> 
    <properties> 
    <property name="Title" type="string">Custom List Form</property> 
    <property name="Description" type="string">Provides A Data Entry Form For a SharePoint List</property> 
    <!-- SEE CHROME TYPE BELOW -->  
    <property name="ChromeType" type="chrometype">None</property> 
    </properties> 
</data> 
</webPart> 
</webParts> 
+4

我第二的.webpart方法。 – 2012-01-04 09:57:25

+0

這應該是答案,因爲它比代碼方式更加優雅和可重用(但它只設置ChromeType的默認值,但據我瞭解,它應該足以滿足原始問題中提及的情況) 。 – 2017-03-01 15:12:51

4

這是另一種解決方案使用PartChromeType = 「無」

<WebPartPages:WebPartZone runat="server" Title="Banner" ID="Banner" PartChromeType="None" /> 

支持的選項更改ChromeType是:

  • BorderOnly
  • 默認
  • TitleAndBorder
  • TitleOnly

要更新的變化有時需要取出並重新插入web部件