Я пытаюсь внедрить технику Dynamic Place Holder Ника Вессельмана в Sitecore. Я использую sitecore 6.5 и asp.net.Switcher <Placeholder, PlaceholderSwitcher> .GetStack возвращает null Как реализовать динамические заполнители в sitecore
http://www.techphoria414.com/Blog/2011/August/Dynamic_Placeholder_Keys_Prototype http://www.techphoria414.com/Blog/2012/May/Sitecore_Page_Editor_Unleashed
Я использовал исходный код я нашел в БЛОГ Sitecore_Page_Editor_Unleashed
Все трубопроводы кажутся на месте и работает. Но в Dynamic Закончен Место контролировать следующий бит кода возвращает значение 0 (ноль), хотя существует пять динамических заполнители по контролю
Stack<Placeholder> stack = Switcher<Placeholder, PlaceholderSwitcher>.GetStack(false);
изолировать проблему, я создал очень простой Sitecore экземпляр. 1 макет и 1 подвал.
В отделенной коде sublayout У меня есть следующий код для демонстрационных целей:
var list = new List<int>();
for (int i = 0; i < 5; i++)
{
list.Add(i);
}
Repeater.DataSource = list;
DataBind();
Это источник ASCX/sublayout
<asp:Repeater runat="server" ID="Repeater">
<ItemTemplate>
<mi:DynamicKeyPlaceholder runat="server" ID="pl" Key="place"></mi:DynamicKeyPlaceholder>
</ItemTemplate>
</asp:Repeater>
Результата является то, что все пять заполнителей до сих пор имеют те же ключ.
Что делать?
Так вы, где правильно. Мне пришлось изменить свой дизайн. Дело в том, что динамический placeholder actualy должен быть добавлен к содержащему placehoder через Редактор страниц. Сохраняя это, держатель dynamicplace будет сохранен в базе данных. Только тогда Stack stack = Switcher .GetStack (false); сможет получить стек. Таким образом, в коде динамическое добавление заполнителей не будет работать, потому что они не будут сохранены в sitecore. Было сложно изменить мой дизайн и не потерять функциональность в моем приложении. Но теперь все работает как ветер. Спасибо за вашу помощь. –
Прохладный вы можете опубликовать или принять свой ответ или принять мой? Спасибо, Пол. – techphoria414