目前,我有一个包含自定义webpart的sharepoint解决方案,用于sharepoint列表的New / Edit / Disp表单。截至目前,我通过手动导航到这些页面并通过gui插入这些webpart来指向列表。我现在的问题是,如何通过C#自动执行此过程?是否可以用我自己的自定义webparts替换默认列表项表单?根据{{3}}链接,我的尝试如下。
我创建了一个事件接收器来处理这个
代码:
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>
我这样做是否正确?还有另外一种方法吗?任何意见都非常感谢。
答案 0 :(得分:0)
在这种情况下,我相信你并没有压倒正确的事件。
尝试覆盖FeatureActivated,因为只有在激活功能后,Web部件才可用。
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
// do stuff
}
如果在部署解决方案时仍遇到错误,请尝试以下操作: