コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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);
                    }
                }
            }
        }