Проверка 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);