Sitecore: как получить Get Rendering usercontrol path то есть Ascx-файл, используя Rendering ID
Мне нужно получить .ascx пути к файловой системе пользовательского управления из RenderingID.
Приведенный ниже код дает мне список отображений элемента, но он не возвращает путь пользовательского элемента управления ни в одном из свойств объекта данных RenderingReference.
public RenderingReference[] GetListOfSublayouts(Sitecore.Data.ID itemId)
{
Sitecore.Layouts.RenderingReference[] renderings = null;
Item item = Sitecore.Context.Database.GetItem(Sitecore.Data.ID.Parse(itemId));
if (item != null)
{
renderings = item.Visualization.GetRenderings(Sitecore.Context.Device, true);
}
return renderings;
}
1 ответ:
RenderingReferenceобъект обладает свойствомRenderingItem.RenderingItemобладает свойствомInnerItem.InnerItemимеет типItem, и это элемент sublayout в дереве Sitecore. Он имеет полеPath, которое содержит путь к файлу ascx.Таким образом, код будет примерно таким:
Этот код не тестируется, но должен указать вам правильное направление.RenderingReference firstReference = renderings[0]; RenderingItem renderingItem = firstReference.RenderingItem; Item innerItem = renderingItem.InnerItem; string ascxPath = innerItem["Path"];Вы должны добавить нулевые проверки и проверить шаблоны (например, если innerItem использует шаблон
/sitecore/templates/System/Layout/Renderings/Sublayout).
Comments