我想要单行文本字段的最大长度。我知道可以使用自定义字段,但如果可能的话,我宁愿避免使用自定义字段。
答案 0 :(得分:2)
您可以使用验证规则。
在您的模板下,浏览到您的字段定义项,然后您可以在Validation Rules
部分中选择验证器。这里有一个示例规则:/sitecore/system/Settings/Validation Rules/Field Rules/Sample/Max Length 40
,它确保您的最大长度为40个字符。您当然可以复制并更改此规则。
答案 1 :(得分:0)
您添加自定义字段验证器:
using Sitecore.Data.Validators;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// DLL: "MySitecore.dll"
namespace MySitecore.Data.Validators.FieldValidators
{
public class StringLengthValidator : StandardValidator
{
public const Int32 MaxStringLength = 40; // Change me
protected override ValidatorResult Evaluate()
{
if (!String.IsNullOrEmpty(base.ControlValidationValue))
{
if (base.ControlValidationValue.Length > MaxStringLength)
{
base.Text = base.GetText("The field '{0}' exceeds the maximum string length of {1}", new String[]{
base.GetFieldDisplayName(),
MaxStringLength
});
return base.GetFailedResult(ValidatorResult.Error);
}
}
return ValidatorResult.Valid;
}
protected override ValidatorResult GetMaxValidatorResult()
{
return base.GetFailedResult(ValidatorResult.Error);
}
public override String Name
{
get { return String.Format("Must be {0} or fewer characters", MaxStringLength); }
}
}
}
然后,添加与该验证器对应的项目:
/sitecore/system/Settings/Validation Rules/Field Rules/Text
/sitecore/templates/System/Validation/ValidationRule
)MySitecore.Data.Validators.FieldValidators.StringLengthValidator, MySitecore
最后,转到您的模板,找到要添加验证的字段并应用新验证程序。