2013-03-22 1 views
3

Я использую Kentico без проблем на некоторое время до сегодняшнего дня, вот мой вопросПользовательские таблицы в Uniselector в Kentico

Я хочу использовать пользовательские таблицы в uniselector.

Как я попал в проблему, мне нужно использовать элементы управления пользовательской формы, например, в SiteManager-> Users Advanced filter. У нас есть Добавить роли, которые открывают всплывающее окно, и он показывает список всех ролей.

Этот WebPart использует Uniselector

<cms:CMSUpdatePanel ID="pnlUpdate" runat="server"> 
    <ContentTemplate> 
     <cms:UniSelector ObjectType="cms.role" SelectionMode="MultipleTextBox" 
      OrderBy="RoleDisplayName" ResourcePrefix="roleselect" runat="server" 
      ID="usRoles" ShortID="s" AllowEditTextBox="true" AddGlobalObjectSuffix="true" /> 
    </ContentTemplate> 
</cms:CMSUpdatePanel> 

Теперь, если я использую

ObjectType="cms.role" 

он отлично работает, потому что это таблица

система теперь, если я использую

ObjectType="customtable.country" 

Это не будет Работа

Любая помощь приветствуется. Спасибо заранее.

ответ

10

Начиная с версии 7, вы можете использовать:

ObjectType="customtableitem.namespace.customtable" 

было бы

ObjectType="customtableitem.customtable.SampleTable" 

для образца пользовательская таблица (с сайта корпоративного образца).

Не стесняйтесь обращаться ко мне, если у вас есть другие вопросы.

+0

Мы попробуем, если это будет так просто, это будет действительно потрясающе :) –

+0

Привет, rocky, я попробовал ваше решение, это действительно хорошо и отлично работает. Могу ли я узнать, как установить iObjectType.DisplayNameColumn, поместив ItemGUID по умолчанию, и я хочу установить другое имя столбца в iObjectType.DisplayNameColumn. –

+0

Привет, set DisplayNameFormat = "{% DisplayNameColumn%}". – rocky

1

К сожалению, UniSelector требует создания типов объектов Kentico по дизайну и не работает для пользовательских таблиц.

Однако, есть в основном три возможных пути решения проблемы:

  1. Вы можете развить контроль пользовательские формы вместо использования UniSelector ->Developer's Guide - Developing form controls
  2. Используйте встроенную в раскрывающемся списке управления
  3. Изменить UniSelector form control - вы загрузите свой DataSet в метод LoadObjects() в файл ~ \ CMSAdminControls \ UI \ UniSelector \ UniSelector.ascx.cs
+0

Hi Filip, Спасибо за обновление. Мы сделали это, используя 1 и 3 очка, и он делает то, что ожидается. –

0

мы изменили uniselector.ascx, имея в виду, что Кентико может перезаписать его, когда он обновляется использовать этот CMSAdminControls

я использую этот подход и получить успех Создано новые страницы как

  1. CustomUniSelector .ascx
  2. CustomSelectionDialog.ascx

Изменить метод Loadobject, как дать~/CMSAdminControls/Mycustomcontrol/МетодURL CustomSelectionDialog.aspx

чем LoadControls изменения() в CustomSelectionDialog.ascx.cs

CMSObjectHelper.GetObject() метод не получить данные из пользовательской таблицы так добавлен новый метод для извлечения данных из пользовательской таблицы