我们将在使用WSP提供网站后创建几个Web零件。我可以在功能动作上从头开始创建WP。或将一组WP保存在图库中,并在需要时创建一个实例。用于站点模板的WSP还创建了这些WP所在的列表和库。希望我有意义。当网站是条款时,我最好的选择是什么。我将不得不添加一些代码在配置网站的末尾创建WP,因此我确定所有列表均已创建。请建议。

有帮助吗?

解决方案

好的,考虑到我们有这个环境:

  1. 我们有农场级的WSP文件(在这种情况下也可以打沙箱,但是为了清楚起见,我们认为这是一个农场)。
  2. 该WSP包含一些列表和库定义/实例,以及一些视觉网络分配。
  3. 另外,WSP文件中至少包含一个功能。
  4. 该WSP被添加到您的农场,部署到指定的站点收集中,并在此激活功能。因此,创建了列表和库,并将WebParts添加到图库中。
  5. 完成所有操作后,我们希望在“ default.aspx”站点页面上实例化WebPart“ WebPart1”。

从这一点开始,我们可以为功能接收器添加一些代码(在功能反理中),以实现我们的目标。此代码看起来像这样:

// prepare the webpart
var webPart = new WebPart1();
// ...here you can initialize some webpart properties, if needed

// fetch SPFile object for default.aspx page
SPFile page = web.RootFolder.Files["default.aspx"];
if (page.Exists)
{
   // ...here you probably need to check out the page if it is a publishing site

   // get LimitedWebPartManager object for the page
   var webPartManager = page.GetLimitedWebPartManager(PersonalizationScope.Shared);
   // add our webpart into the 'Main' webpart zone, using zone index = 1
   webPartManager.AddWebPart(webpart, "Main", 1);

   // ...do not forget to commit your changes here if you are using publishing site

   // save our changes
   page.Update();
}

MSDN参考:

  1. Splimitedwebpartmanager
  2. splimitedwebpartmanager.addwebpart
  3. 如何:在页面上使用Web零件
许可以下: CC-BY-SA归因
scroll top