Not sure if it's going to be a good idea or not to do this (performance implications), but if you wanted to have a look at something like this, you might find what you need...??
if you have a Sitecore Item, you can call the following extension method like so:
var renderings = item.GetRenderingReferences("default");
foreach (var rendering in renderings)
{
//access rendering.Settings.Blah here
}
//extension to add to your solution
public static class RenderingExtensions
{
public static Sitecore.Layouts.RenderingReference[] GetRenderingReferences(this Item item, string deviceName)
{
LayoutField layoutField = item.Fields["__final renderings"];
if (layoutField == null)
return null;
Sitecore.Layouts.RenderingReference[] renderings = null;
if (item.Database != null)
{
renderings = layoutField.GetReferences(item.Database.GetDeviceItem(deviceName));
}
else
{
renderings = layoutField.GetReferences(Sitecore.Context.Database.GetDeviceItem(deviceName));
}
return renderings;
}
public static DeviceItem GetDeviceItem(this Database db, string deviceName)
{
return db.Resources.Devices.GetAll().Where(d => d.Name.ToLower() == deviceName.ToLower()).First();
}
}
![enter image description here](https://i.sstatic.net/Oq7rH.png)