Я пытаюсь получить доступ к значению источника данных sublayout через код позади, и я получаю пустую строку в источнике данных.Sitecore 8: Значение datasource равно null/пусто в sublayout (.ascx)
Ниже приведены снимки экрана моего баннера sublayout в Sitecore и как значение источника данных устанавливается в презентации:
Banner Sublayout with Datasource location and template set
Banner sublayout added to presentation and datasource set to an item
Ниже приведен код, который я использую, чтобы получить источник данных :
using Sitecore.Data.Items;
using Sitecore.Web.UI.WebControls;
using System;
using System.Web.UI;
public partial class Banner : UserControl
{
private Item _dataSource = null;
public Item DataSource
{
get
{
if (_dataSource == null)
if (Parent is Sublayout)
{
_dataSource = Sitecore.Context.Database.GetItem(((Sublayout)Parent).DataSource);
}
return _dataSource;
}
}
private void Page_Load(object sender, EventArgs e)
{
var test = DataSource;
Item a = Sitecore.Context.Item;
}
}
Я делаю что-то неправильно или что может быть проблемой?
Все ли соответствующие пунктов опубликованных (текущий элемент, источник данных, ..)? Вы можете проверить в веб-базе данных. – Gatogordo
И вне темы: используйте «как», а не «есть», если вы собираетесь бросать;) – Gatogordo
@Gatogordo - «как» для кастинга, «есть» для проверки наследования , Они не являются взаимозаменяемыми, если только вы не предложили, чтобы он выполнял акцию, используя «как», и заменил свой оператор «if» проверкой на нуль, т. Е. Проверил, выполнено ли «как отбрасывание». – DougCouto