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;
}
577   1  

1 ответ:

  1. RenderingReference объект обладает свойством RenderingItem.
  2. RenderingItem обладает свойством InnerItem.
  3. 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

    Ничего не найдено.