public override WebPart CreateWebPart(SPWeb web, Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager webPartManager) { SPQuery qry = new SPQuery(); qry.Query = String.Format(CultureInfo.CurrentCulture, "<Where><Eq><FieldRef Name='FileLeafRef'/><Value Type='File'>{0}</Value></Eq></Where>", this.WebpartName); SPList webPartGallery = null; if (web.ParentWeb == null) { webPartGallery = web.GetCatalog( SPListTemplateType.WebPartCatalog); } else { webPartGallery = web.Site.RootWeb.GetCatalog( SPListTemplateType.WebPartCatalog); } SPListItemCollection webParts = webPartGallery.GetItems(qry); XmlReader xmlReader = new XmlTextReader(webParts[0].File.OpenBinaryStream()); string errorMsg; WebPart webPart = webPartManager.ImportWebPart(xmlReader, out errorMsg); //webPart.Hidden = isHidden; base.UpdateProperties(webPart); return(webPart); }
/// <summary> /// Получение импортированной веб части /// </summary> /// <param name="site">Сайт коллекция</param> /// <param name="wpName">Имя веб части</param> /// <returns>Объект веб части</returns> public static WebPart GetImportedWebPart(SPSite site, string wpName) { string error = String.Empty; var wpSetttings = site.RootWeb.GetFileAsString(String.Format("{0}/_catalogs/wp/{1}", site.RootWeb.Url, wpName)); using (Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager wpManager = site.RootWeb.GetLimitedWebPartManager(site.RootWeb.RootFolder.WelcomePage, PersonalizationScope.Shared)) { using (var stringReader = new StringReader(wpSetttings)) { using (XmlTextReader reader = new XmlTextReader(stringReader)) { var wp = wpManager.ImportWebPart(reader, out error); return(wp); } } } }