问题是:使用SPD易于更改属性,不允许用户从WP区域关闭 /最小化WebParts:

webpartzone编辑属性http://img34.imageshack.us/img34/3389/webpartzoneedit.png

现在,我们如何在代码中做到这一点?我在一个网站上有30个ASPX WebPart页面,我希望能够做到这一点,以便没有人可以更改WebParts属性(关闭,删除它们等)

我唯一发现的是此链接: Spwebpartzonetools.

在SDK中阅读更多信息: WSS 3.0 SDK, ,在第二个重要段落中说:

尽管您可以将Web零件添加到列表项目的显示,编辑和新表单(poxtform.aspx,editform.aspx和newform.aspx)中,但不建议在Windows SharePoint服务中使用或支持这样做。支持将Web零件添加到列表视图页面(Allitems.aspx)。

所以我想解决的是我的错误:)。我确实打破了这一规则。我的问题可以在SPD中解决,但我不知道是否可以用代码解决。

这个错误是从一个神话般的40个模板之一中“启发”的: BudgectingTrackingMultProjects.wsp. 。在项目列表上,在podpform.aspx上,Microsoft添加了更多的WebParts来创建主尾式表单。

有帮助吗?

解决方案

我已经解决了这样的问题:如果您在SPD中打开了compentform.aspx并修改Web零件区域属性,则在SOUCE代码(ASPX)中,我们可以看到此行:

 <WebPartPages:WebPartZone runat="server" FrameType="None" ID="Main" Title="loc:Main" allowlayoutchange="false" allowpersonalization="false" allowcustomization="false">

因此,我创建了一个简单的控制台应用程序,该应用程序访问每个列表,获取其compentform.aspx的URL并像常规文本文件一样打开。所以我不使用任何API或SMTH,只是 spweb.getfile(字符串) - 获得spfile和 spweb.getfileasstring(URL) 将ASPX内容作为字符串。然后我注入属性(允许layoutchange / 允许人性化 / 允许定位)在上面介绍的行中,仅使用字符串搜索和替换方法。

然后使用spfile.savebinary()将内容保存回ASPX文件。就是这样,下次请求conpform.aspx贡献。用户不能从那里使用webparts做事。因此,这就是我更改Web Part区域属性的方法。我很期待看到其他解决方案。

其他提示

在配置Web零件后,您应该能够设置这些属性(即如果您没有像Chris所说的那样完成并在Web零件的清单中进行定义),请迭代SplimitedWebPartManager中的Web零件(当心,请注意 泄漏)在每个页面上,并设置允许,允许,允许minimimize等属性。

Hth Anders Rask

您也可以将其设置为WebPartzone控件(在代码或ASPX中)。使用locklayout属性,例如这样:

<WebPartPages:WebPartZone LockLayout="true" runat="server"...>...</...>

/ww

您需要用代码做吗?如果您的要求仅仅是为了停止用户在Web零件中进行这些更改,则通常通过使用指定此行为的属性来处理Web零件来处理这一点,例如:

   <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
     <metaData>
       <type name="xxxxx.SharePoint.Common.WebParts.SiteDirectoryWebPartWrapper,
 xxxxxx.SharePoint.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxx" />
       <importErrorMessage>Cannot import this Web Part.</importErrorMessage>
     </metaData>
     <data>
       <properties>
         <property name="AllowZoneChange" type="bool">False</property>
         <property name="AllowHide" type="bool">False</property>
         <property name="AllowMinimize" type="bool">False</property>
         <property name="AllowClose" type="bool">False</property>
         <property name="AllowEdit" type="bool">True</property>
         <property name="AllowConnect" type="bool">False</property>
         <property name="ExportMode" type="exportmode">All</property>
         <property name="Hidden" type="bool">False</property>
         <property name="TitleUrl" type="string" />
         <property name="Description" type="string">Displays a list of sites
 for the current area (e.g. 'teams') in a treeview. </property>
         <property name="Title" type="string">xxxxx Site Directory
 Web Part</property>
       </properties>
     </data>   
    </webPart> 
</webParts>
许可以下: CC-BY-SA归因
scroll top