2016-12-21 9 views
0

Я пытаюсь получить доступ к значению источника данных 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; 
     } 
    } 

Я делаю что-то неправильно или что может быть проблемой?

+1

Все ли соответствующие пунктов опубликованных (текущий элемент, источник данных, ..)? Вы можете проверить в веб-базе данных. – Gatogordo

+0

И вне темы: используйте «как», а не «есть», если вы собираетесь бросать;) – Gatogordo

+0

@Gatogordo - «как» для кастинга, «есть» для проверки наследования , Они не являются взаимозаменяемыми, если только вы не предложили, чтобы он выполнял акцию, используя «как», и заменил свой оператор «if» проверкой на нуль, т. Е. Проверил, выполнено ли «как отбрасывание». – DougCouto

ответ

0

Что делать, если вы получите ваш товар визуализации:

RenderingReference[] renderings = currentItem.GetRenderings(); 

Затем получить рендеринг вы хотите с помощью:

var rendering = renderings.Where(r => r.RenderingItem.ID != yourRenderingID) 

И, наконец,

rendering.Settings.DataSource //This is the datasource id 

 Смежные вопросы

  • Нет связанных вопросов^_^