如何在沙盒解决方案中创建包含 Web 部件的 Web 部件页面

3

我知道使用沙盒解决方案可以创建维基页面,方法如下:

SPUtility.CreateNewWikiPage(list, "{mysiteurl}/CodeGeneratedPage.aspx");

但是,如果可能的话,我如何在我的文档库中创建包含WebPart的WebPart页面?因为我能找到的所有内容(例如这个)都只适用于农场解决方案。是否有一些变通方法?

注意:我在这里发布这个问题,因为这里的人比Sharepoint网站上的人多得多

1个回答

2

找得不错。在沙盒代码中无法使用SPLimitedWebPartManager,因此无法用它将WebPart放入页面。

唯一的方法是通过声明式方式(即XML)向页面提供WebPart,因此您需要在elements.xml文件中执行类似以下操作:

  <AllUsersWebPart WebPartZoneID="MainWebPartZone" WebPartOrder="1">
    <![CDATA[
      <webParts>
        <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
          <metaData>
            <type name="MyComp.WebParts.SampleWebPart, MyComp.WebParts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5" />
            <importErrorMessage>Cannot import this Web Part.</importErrorMessage>
          </metaData>
          <data>
            <properties>
              <property name="Title" type="string">Sample WebPart</property>
            </properties>
          </data>
        </webPart>
      </webParts>
    ]]>       
  </AllUsersWebPart>

这些链接可以帮助您更好地理解相关IT技术:

还有一些其他的链接:


1
非常感谢您的回答,但我必须在用户执行操作时通过编程方式创建WebPart页面(而不是在部署时)。也许有一些变通方法可以执行一些 .net/SharePoint 方法,从XML在部署时创建页面? - Marc
我添加了另外两个链接,可能会有所帮助 - 但我不知道如何在代码中实现这一点。您需要使用XML来配置内容,因为SharePoint在部署时使用SPLimitedWebPartManager,而您无法在代码中使用它。 - Dennis G

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