【问题标题】:Kentico Custom Page Type Form Validation Conditional RequireKentico 自定义页面类型表单验证有条件要求
【发布时间】:2018-02-08 08:43:51
【问题描述】:

对于自定义页面类型中的字段,在宏或规则设计器中访问当前字段值以进行验证的有效方法是什么?只是Value吗?是FieldName.Value吗? this.Value?

目标是为自定义页面类型创建表单添加满足宏条件(一般条件)的验证规则。例如,如果我想确保 字段名称Foobar 的文本字段的字符串值不为空/null,我将如何将其设置为 一般条件 验证规则?

尝试以下任一方法:

Satisfies macro condition {% !String.IsNullOrEmpty(Value) %}
Satisfies macro condition {% !String.IsNullOrEmpty(Foobar.Value) %}

Foobar 字段具有长度大于零 (0) 的字符串值时,尝试保存该字段的值时会出错。当字段为空时,验证奇怪地通过了。

这个Foobar 字段“取决于另一个字段:”。仅当 another 字段为特定值时才需要。在宏规则中,我可以使用OtherField.Value 访问其他字段值,这就是为什么在这种情况下简单地添加“最小长度”规则不起作用的原因。我希望使用以下范围的东西来检查复选框的条件(选中/真)有条件地需要这个文本字段,但是Foobar的字符串/文本评估,当前字段不起作用。

{% if (OtherField.Value == True) { return !String.IsNullOrEmpty(Foobar.Value) } else { return true; } %}

注意:我可以在Foobar 的属性中评估OtherField.Value/OtherField.Length,甚至是“说明文字”。我还可以在OtherField 的属性中评估Foobar.Value。它们具有值/长度/等。

感谢您提供的任何帮助!

【问题讨论】:

    标签: kentico


    【解决方案1】:

    K# 不区分大小写,尽管几乎所有 C# 方法都可以在 K# 中使用,但字母大小写可能会影响常量和变量的值(用于比较和类似目的)。而且我不相信String.IsNullOrEmpty() 在宏引擎中可用,但我可能是错的。

    所以要解决您的问题,您可以执行以下操作:

    {% if(OtherField.Value) { Foobar.Value != "" } else { true } %}
    

    您是否也尝试过Macro debugger 来查看您的输出值是什么以及宏正在处理什么?这将是一个很好的设置测试。

    Macro methods

    【讨论】:

    • 澄清一下,您应该通过定位字段/代码名称来访问字段的值,如FieldName.Value?不仅仅是Valuethis.ValueCurrentContextSomething.Value
    • 更正其 ColumnName.Value。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多