Проверка Regex для TreelistEx не работает

В редакторе содержимого Sitecore / редакторе страниц, когда я добавляю элементы в TreelistEx, я бы хотел, чтобы TreelistEx разрешал только 12 элементов. Чтобы достигнуть этого решения, я добавил Regex ^.{0,467}$ в поле проверки в разделе шаблона, в котором я хочу ограничить элементы. Я сослался на эту статью

Это регулярное выражение работает правильно в редакторе контента. Но для редактора страниц всякий раз, когда я добавляю элементы в treelistEx, он работает нормально в первый раз, но снова, если я добавляю / удаляю элементы, он выдает мне сообщение для проверки как для большего, так и для меньшего количества элементов сразу после нажатия кнопки "ОК" и элементов также не сохраняются.

В идеале он должен выдавать сообщение проверки, если количество элементов больше 12 и только при нажатии кнопки "Сохранить", как это работает в редакторе содержимого. Как я могу решить эту проблему проверки Regex в редакторе страниц? Я использую Sitecore 8.1

1 ответ

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

Позвольте пользователю добавить элементы, а затем просто взять первые 12 в вашем коде. Это будет что-то вроде этого:

Создайте метод для получения элемента многоадресной рассылки (для гибкости).

public static MultilistField GetMultilistField(Item item, string fieldName)
{
   if (item != null && !string.IsNullOrWhiteSpace(fieldName))
   {
      MultilistField field = item.Fields[fieldName];
      if (field != null)
      {
        return field;
      }
   }
   return null;
}

Получить предметы в поле Miltilist.

MultilistField field = GetMultilistField[DatasourceItem, "fieldName"];
var returnList = field.GetItems().Where(c => c.TemplateName.Equals("someValidationIfYouWant")).ToList().Take(12);
Другие вопросы по тегам