Чтобы получить Предмет, который используется для размещения определенного элемента управления на странице, вы можете использовать модуль общего источника, называемый Sublayout Parameter Helper.Модуль можно найти здесь
Если вы хотите получить Предмет, вы можете использовать следующую настройку:
Реквизиты:
public partial class Afbeeldingen : System.Web.UI.UserControl
{
/// <summary>
/// Datasource item of the current rendering
/// </summary>
private Sitecore.Data.Items.Item dataSource = null;
/// <summary>
/// Helper object to get the rendering params, datasource and rendering
/// </summary>
private SublayoutParamHelper paramHelper = null;
/// <summary>
/// Gets the data source item.
/// </summary>
/// <value>The data source item.</value>
public Sitecore.Data.Items.Item DataSourceItem
{
get
{
if (this.dataSource == null)
{
if (this.paramHelper.DataSourceItem != null)
{
this.dataSource = this.paramHelper.DataSourceItem;
}
else
{
this.dataSource = Sitecore.Context.Item;
}
}
return this.dataSource;
}
}
/// <summary>
/// Sets the data source.
/// </summary>
/// <value>The data source.</value>
public string DataSource
{
set
{
this.dataSource = Sitecore.Context.Database.Items[value];
}
}
Page_Load:
/// <summary>
/// Handles the Load event of the Page control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.EventArgs"/></param>
protected void Page_Load(object sender, EventArgs e)
{
if (this.Parent is Sitecore.Web.UI.WebControls.Sublayout)
{
this.paramHelper = new SublayoutParamHelper(this, true);
}
if (this.paramHelper != null)
{
correctItem = paramHelper.DataSourceItem;
}
Оттуда у вас есть Sub, загруженный в ваш правильный элемент.Надеюсь это поможет.Надеюсь, я понял ваш вопрос достаточно хорошо.