2015-10-08 2 views
0

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

У меня есть тип страницы, содержащий пользовательское свойство, которое непосредственно копируется с AlloyDemo.

[BackingType(typeof(PropertyStringList))] 
    [Display(Order = 305)] 
    [UIHint(Global.SiteUIHints.Strings)] 
    [CultureSpecific] 
    public virtual string[] Address { get; set; } 

Класс BackingType PropertyStringList выглядит следующим образом:

[EditorHint(Global.SiteUIHints.Strings)] 
[PropertyDefinitionTypePlugIn(Description = "String List", 
DisplayName = "String List")] 
public class PropertyStringList : PropertyLongString 
{ 
    protected String Separator = "\n"; 

    public String[] List 
    { 
     get 
     { 
      return (String[])Value; 
     } 
    } 

    public override Type PropertyValueType 
    { 
     get 
     { 
      return typeof(String[]); 
     } 
    } 

    public override object SaveData(PropertyDataCollection properties) 
    { 
     return LongString; 
    } 

    public override object Value 
    { 
     get 
     { 
      var value = base.Value as string; 

      if (value == null) 
      { 
       return null; 
      } 

      return value.Split(Separator.ToCharArray(),   
    StringSplitOptions.RemoveEmptyEntries); 
     } 
     set 
     { 
      if (value is String[]) 
      { 
       var s = String.Join(Separator, value as String[]); 
       base.Value = s; 
      } 
      else 
      { 
       base.Value = value; 
      } 

     } 
    } 

    public override IPropertyControl CreatePropertyControl() 
    { 
     //No support for legacy edit mode 
     return null; 
    } 
} 

Когда я запускаю сайт, он делает (в режиме редактирования) свойство Address так:

Rendering fail, which is a button И когда я нажмите кнопку Я получаю это: Null Reference Exception in a popup

Я серьезно не знаю, почему это происходит. Может ли кто-нибудь объяснить?

С уважением, Крис

ответ

2

Вы пропускаете дескриптор редактора. Проверьте «StringListEditorDescriptor.cs» в проекте «Сплав». Вам также понадобятся клиентские ресурсы - сценарий Dojo StringList. И вам также необходимо зарегистрировать этот модуль .config

+0

Вы абсолютно правы, я полностью забыл о дескрипторе редактора. Спасибо! – ChrisRun

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

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