创建网络部件在编程中与2010年
-
16-10-2019 - |
题
我们将在使用WSP提供网站后创建几个Web零件。我可以在功能动作上从头开始创建WP。或将一组WP保存在图库中,并在需要时创建一个实例。用于站点模板的WSP还创建了这些WP所在的列表和库。希望我有意义。当网站是条款时,我最好的选择是什么。我将不得不添加一些代码在配置网站的末尾创建WP,因此我确定所有列表均已创建。请建议。
解决方案
好的,考虑到我们有这个环境:
- 我们有农场级的WSP文件(在这种情况下也可以打沙箱,但是为了清楚起见,我们认为这是一个农场)。
- 该WSP包含一些列表和库定义/实例,以及一些视觉网络分配。
- 另外,WSP文件中至少包含一个功能。
- 该WSP被添加到您的农场,部署到指定的站点收集中,并在此激活功能。因此,创建了列表和库,并将WebParts添加到图库中。
- 完成所有操作后,我们希望在“ 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参考: