【问题标题】:Regex Validation for TreelistEx is not workingTreelistEx 的正则表达式验证不起作用
【发布时间】:2016-08-15 10:42:10
【问题描述】:
在 Sitecore 内容编辑器/页面编辑器中,当我向 TreelistEx 添加项目时,我希望 TreelistEx 只允许 12 个项目。为了实现这个解决方案,我在要限制项目的模板部分内的验证字段中添加了一个正则表达式 ^.{0,467}$。
我已经转介this article
此正则表达式在内容编辑器中正常工作。但是对于页面编辑器,每当我在 treelistEx 中添加项目时,它第一次可以正常工作,但是如果我添加/删除项目,它会在单击“确定”和项目后给我更多和更少项目的验证消息也没有保存。
理想情况下,如果项目数大于 12 并且仅在单击“保存”按钮时,它应该给出验证消息,就像它在内容编辑器中工作一样。如何在页面编辑器中解决此正则表达式验证问题?我正在使用 Sitecore 8.1
【问题讨论】:
标签:
regex
sitecore
sitecore8
sitecore8.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);