2017-02-20 27 views
2

У меня есть три элемента управления CMSEditableRegion внутри ascx, которые должны быть на странице aspx 3 или более раз.Несколько CMSEditableRegion в ascx?

Проблема в том, что каждый элемент управления региона всегда будет содержать содержимое последнего набора из них.

После небольшого исследования я обнаружил, что он сохраняет содержимое элемента управления в базе данных под идентификатором элемента управления, что означает, что первый CMSEditableRegion будет иметь свой контент, перезаписываемый последним содержимым CMSEditableRegion (поскольку есть по крайней мере три с одинаковым идентификатором сервера - по одному на ascx). Ну, скорее, это было для Kentico 5, но то, что я вижу, как правило, поддерживает это. К сожалению, решение, которое я нашел для Kentico 5, не работает в Kentico 10.

Как я могу использовать несколько элементов управления CMSEditableRegion в ascx, который будет отображаться на странице aspx несколько раз?

Редактировать: Мы действительно используем диспетчер портала (правильно), и наш мастер настроен с использованием указанной документации Kentico.

ответ

0

Когда вы используете движок портала, вы можете иметь столько, сколько хотите, и это должно применяться к модели разработки aspx. Вы писали: the example? Я хотел бы посмотреть в БД, чтобы убедиться, что XML сохраняется правильно:

select CONVERT(xml,DocumentContent), * from cms_document where documentid = 123 

При сохранении веб-частей (в портальной двигателя это эквивалент CMSEditableRegion), XML, выглядит следующим образом:

<content> 
    <webpart id="editabletext1;fe77e447-3af4-440f-a736-7c1e321cb3fc">456</webpart> 
    <webpart id="editabletext;3bb22493-8e7d-47c1-9dc0-dfc5aeff3157">123</webpart> 
</content> 

Ваш должен выглядеть так же или очень похожим. он может иметь что-то, чтобы сделать идентификаторы или привязки.

+0

Мы создали нашу главную настройку и портал-менеджер/движок в соответствии с документацией по kentico. – MetalPhoenix

0

Я думаю, что вам не хватает Portal менеджер:

<cms:CMSPortalManager ID="manPortal" runat="server" EnableViewState="false" /> 

Но самый простой способ понять, как это работает, чтобы открыть шаблон Кентико APX в CMSTemplates/CorporateSite. Там вы найдете главную страницу (root.master) с шаблоном домашней страницы (HomeASPX.aspx). В мастере вы можете видеть, что диспетчер портала размещен, и дома вы можете добавить столько областей редактирования, сколько захотите. Я попробовал это.

Надеюсь, это решает вашу проблему.

+0

Нет, у нас есть менеджер портала там, в соответствии с документацией кентико. – MetalPhoenix

+0

Вы проверили, как это было сделано в шаблонах Kentico ASPX в CMSTemplates/CorporateSite? –

+0

Это * буквально * копия/вставка непосредственно из документации, как показано здесь: https://docs.kentico.com/k10/developing-websites/developing-websites-using-aspx-templates/creating-master-pages-for -aspx-templates – MetalPhoenix

2

Необходимо, чтобы каждый идентификатор управления CMSEditableRegion был уникальным, чтобы данные для каждого экземпляра хранились отдельно в базе данных.

Вы можете достичь этого, установив идентификатор элемента управления в файле codebehind вашей веб-части ascx.

Поместите CMSEditableRegion в свой ASCX ...

<cms:CMSEditableRegion runat="server" ID="cerContent" RegionTitle="WYSIWYG" RegionType="HtmlEditor" /> 

... и затем установить идентификатор элемента управления в коде позади ...

cerContent.ID = this.ID + cerContent.ID; 

Уникальный идентификатор генерируется здесь конкатенирование идентификатора элемента управления с помощью this.ID, который является уникальным идентификатором экземпляра веб-части, когда он помещен на страницу.

Работы для меня в Кентико 10.