替换SharePoint列表项默认的New/Edit/Disp webpart
本文关键字:Edit Disp webpart New SharePoint 列表 默认 替换 | 更新日期: 2023-09-27 18:11:16
目前我有一个sharepoint解决方案,包含sharepoint列表的新建/编辑/删除表单的自定义webpart。到目前为止,我通过手动导航到这些页面并通过gui插入它们来将列表指向这些webpart。我现在的问题是,我如何通过c#自动化这个过程?是否可以用我自己的自定义webparts替换默认的列表项表单?我的尝试如下,根据这个链接。
我已经创建了一个事件接收器来处理这个
代码: public override void FeatureInstalled(SPFeatureReceiverProperties properties)
{
using (SPSite sp_Site = new SPSite("http://root/site/Lists"))
{
string err = string.Empty;
using (SPWeb sp_Web = sp_Site.OpenWeb())
{
XmlTextReader reader = new XmlTextReader(new StringReader(sp_Web.GetFileAsString("http://root/_catalogs/wp/myWebPart.webpart")));
SPLimitedWebPartManager wpm = sp_Web.GetLimitedWebPartManager("http://root/site/Lists/MyList/DispForm.aspx", System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
WebPart wp = (WebPart)wpm.ImportWebPart(reader, out err);
wpm.AddWebPart(wp, "Main", 0);
wpm.SaveChanges(wp);
}
}
我目前无法调试这个,因为错误Error occurred in deployment step 'Add Solution': <nativehr>0x80070002</nativehr><nativestack></nativestack>
我这样做对吗?还有别的办法吗?
我相信在这种情况下您没有重写正确的事件。
尝试重写FeatureActivated,因为web部件只有在功能被激活后才可用。
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
// do stuff
}
如果在部署解决方案时仍然遇到上述错误,请尝试以下操作:
- close visual studio
- 重新启动"Sharepoint 2010用户代码主机"服务
- 重启Windows Management Instrumentation服务
- 打开visual studio并尝试再次部署您的解决方案