覆盖Chrome类型Web部件

13

我在Sharepoint 2010中创建了一个Webpart,需要让"Chrome Type"属性始终设置为"None"。

我一直在寻找强制Combobox设置为"None"的方法,或者在C#类中覆盖"Chrome Type"的方法,但我没有找到任何可以实现的方式。哪种最好的方法可以设置这个属性呢?

Override Chrometype

3个回答

27
另一个选项是使用.webpart文件,并使用ChromeType属性将其指定为默认选项。您可以在Visual Studio解决方案中执行此操作(如下所示),也可以直接在Web Part库中编辑.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 方式。 - Dennis G
这应该是答案,因为它比代码方法更优雅和可重用(但它只设置ChromeType的默认值,但据我所知,对于原始问题中提到的情况应该足够)。 - Jen-Ari

7

您应该能够在代码中修改 Web 部件的 .ChromeType 属性。

请记住,在 Web 部件的生命周期中进行此操作的位置。

如果您在 Render 方法中执行此操作,则为时已晚 - 此时 Chrome 已经被绘制出来了。

另一方面,如果您在太早的阶段执行此操作,则当 SharePoint 应用工具部分的设置时,您的设置将被覆盖。

考虑在 OnPreRender 事件中进行此操作。


4
这是另一种解决方案,可使用PartChromeType="None"来更改ChromeType。
<WebPartPages:WebPartZone runat="server" Title="Banner" ID="Banner" PartChromeType="None" />

支持的选项有:

  • 仅边框(BorderOnly)
  • 默认(Default)
  • 无(None)
  • 标题与边框(TitleAndBorder)
  • 仅标题(TitleOnly)

有时需要删除并重新插入 Web 部件才能更新更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接