【发布时间】:2011-07-24 06:37:42
【问题描述】:
我在 Sharepoint 2010 中制作了一个 Webpart,我需要属性“Chrome 类型”始终设置一个“无”值。
我一直在寻找将 Combobox 强制设置为“None”或覆盖 C# 类中的“Chrome Type”的方法,但我没有找到任何方法。设置此属性的最佳方法是什么?
【问题讨论】:
标签: sharepoint sharepoint-2010 web-parts
我在 Sharepoint 2010 中制作了一个 Webpart,我需要属性“Chrome 类型”始终设置一个“无”值。
我一直在寻找将 Combobox 强制设置为“None”或覆盖 C# 类中的“Chrome Type”的方法,但我没有找到任何方法。设置此属性的最佳方法是什么?
【问题讨论】:
标签: sharepoint sharepoint-2010 web-parts
这是使用 PartChromeType="None" 更改 ChromeType 的另一种解决方案
<WebPartPages:WebPartZone runat="server" Title="Banner" ID="Banner" PartChromeType="None" />
支持的选项有:
要更新更改,有时需要删除并重新插入 Web 部件
【讨论】:
另一个选项是使用 .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>
【讨论】:
您应该能够在代码中修改 Web 部件的 .ChromeType 属性。
请记住您在 Web 部件生命周期中的哪个位置执行此操作。
如果您将其作为 Render 方法的一部分进行,则为时已晚 - 此时已绘制了镶边。
另一方面,如果您提早执行此操作,那么当 SharePoint 应用工具部分中的设置时,您的设置将被覆盖。
看看像 OnPreRender 事件这样的事情。
【讨论】: