protected override void Render(System.Web.UI.HtmlTextWriter writer) { bool inEditMode = false; var webpartZone = Control as Microsoft.SharePoint.WebPartPages.WebPartZone; if (webpartZone != null) { var wpManager = (SPWebPartManager)WebPartManager.GetCurrentWebPartManager(webpartZone.Page); if (wpManager != null) { inEditMode = wpManager.GetDisplayMode().AllowPageDesign; } } if (!inEditMode) { if (webpartZone.WebParts.Count > 0) { WebPartCollection wpColl = new WebPartCollection(webpartZone.WebParts); foreach (System.Web.UI.WebControls.WebParts.WebPart wp in wpColl) { wp.RenderControl(writer); } } } else { base.Render(writer); } }
private static void LocalizeParts(Web web, TokenParser parser, string url, WebPartCollection webParts, PnPMonitoredScope scope) { if (CanUseAcceptLanguageHeaderForLocalization(web)) { var context = web.Context; var allParts = web.GetWebParts(parser.ParseString(url)).ToList(); foreach (var webPart in webParts) { #if !SP2016 var partOnPage = allParts.FirstOrDefault(w => w.ZoneId == webPart.Zone && w.WebPart.ZoneIndex == webPart.Order); #else var partOnPage = allParts.FirstOrDefault(w => w.WebPart.ZoneIndex == webPart.Order); #endif if (webPart.Title.ContainsResourceToken() && partOnPage != null) { var resourceValues = parser.GetResourceTokenResourceValues(webPart.Title); foreach (var resourceValue in resourceValues) { // Save property with correct locale on the request to make it stick // http://sadomovalex.blogspot.no/2015/09/localize-web-part-titles-via-client.html context.PendingRequest.RequestExecutor.WebRequest.Headers["Accept-Language"] = resourceValue.Item1; partOnPage.WebPart.Properties["Title"] = resourceValue.Item2; partOnPage.SaveWebPartChanges(); context.ExecuteQueryRetry(); } } } context.PendingRequest.RequestExecutor.WebRequest.Headers.Remove("Accept-Language"); } else { // warning scope.LogWarning(CoreResources.Provisioning_Extensions_WebPartLocalization_Skip); } }
private static void LocalizeParts(Web web, TokenParser parser, string url, WebPartCollection webParts, PnPMonitoredScope scope) { if (CanUseAcceptLanguageHeaderForLocalization(web)) { var context = web.Context; var allParts = web.GetWebParts(parser.ParseString(url)).ToList(); foreach (var webPart in webParts) { var partOnPage = allParts.FirstOrDefault(w => w.ZoneId == webPart.Zone && w.WebPart.ZoneIndex == webPart.Order); if (webPart.Title.ContainsResourceToken() && partOnPage != null) { var resourceValues = parser.GetResourceTokenResourceValues(webPart.Title); foreach (var resourceValue in resourceValues) { // Save property with correct locale on the request to make it stick // http://sadomovalex.blogspot.no/2015/09/localize-web-part-titles-via-client.html context.PendingRequest.RequestExecutor.WebRequest.Headers["Accept-Language"] = resourceValue.Item1; partOnPage.WebPart.Properties["Title"] = resourceValue.Item2; partOnPage.SaveWebPartChanges(); context.ExecuteQueryRetry(); } } } context.PendingRequest.RequestExecutor.WebRequest.Headers.Remove("Accept-Language"); } else { // warning scope.LogWarning(CoreResources.Provisioning_Extensions_WebPartLocalization_Skip); } }
protected void Button2_Click(object sender, EventArgs e) { WebPartCollection partCollection = WebPartZone1.WebParts; if (partCollection[0].Title == "My Link List") { partCollection[0].Title = "Favorite Links"; } else { partCollection[0].Title = "My Link List"; } }
public static XmlDocument GetPersonalizationXml(HttpContext context, Page pageNode) { XmlDocument xml = new XmlDocument(); xml.AppendChild(xml.CreateElement("webPartZones")); string virtualPath = CreateVirtualPath(pageNode.Path); PageBase page = InstantiatePage(context, virtualPath, pageNode); page.PreLoad += delegate { WebPartManager wpm = WebPartManager.GetCurrentWebPartManager(page); WebPartZoneCollection webPartZones = wpm.Zones; foreach (WebPartZone zone in webPartZones) { XmlElement zoneElement = xml.CreateElement("webPartZone"); XmlAttribute zoneId = xml.CreateAttribute("id"); zoneId.Value = zone.ID; zoneElement.SetAttributeNode(zoneId); xml.DocumentElement.AppendChild(zoneElement); WebPartCollection webParts = zone.WebParts; foreach (WebPart webPart in webParts) { if (!webPart.IsStatic) { XmlDocument xmlFragment = new XmlDocument(); using (StringWriter sw = new StringWriter()) { using (XmlWriter writer = new XmlTextWriter(sw)) { webPart.ExportMode = WebPartExportMode.All; // Force exporting of all information wpm.ExportWebPart(webPart, writer); writer.Flush(); } xmlFragment.LoadXml(sw.ToString()); } zoneElement.AppendChild(xml.ImportNode(xmlFragment.FirstChild.FirstChild, true)); } } } }; ExecutePage(context, virtualPath, page, pageNode, true); return(xml); }
protected void Button1_Click(object sender, EventArgs e) { WebPartCollection partCollection = mgr1.WebParts; foreach (WebPart part in partCollection) { if (part.ChromeState != PartChromeState.Minimized) { part.ChromeState = PartChromeState.Minimized; } else { part.ChromeState = PartChromeState.Normal; } } }
public static WebPartCollection GetPortlets(HttpContext context, Page pageNode) { WebPartCollection webParts = null; string virtualPath = CreateVirtualPath(pageNode.Path); PageBase page = InstantiatePage(context, virtualPath, pageNode); page.PreLoad += delegate { webParts = WebPartManager.GetCurrentWebPartManager(page).WebParts; }; ExecutePage(context, virtualPath, page, pageNode, true); return(webParts); }