使用自定义 table 来提供下拉列表数据源

Using custom table to feed drop-down list datasource

假设我的自定义 Table 名为 Possible URL target parameters,代号为 xyz.PossibleTargets,有 2 列: ExplanationValue。 如何为页面类型的下拉字段提供数据,使 Value(来自 table)作为 ValueExplanation 作为下拉列表中的 name? 我已经尝试过但没有用:

  1. 生成值;名称对除以换行符并将其放置为选项列表:

    z = ""; foreach (x in CMSContext.Current.GlobalObjects.CustomTables["xyz.PossibleTargets"].Items) {z += x.GetValue("Value"); z +=";"; z += x.GetValue("Explanation"); z += "\n" }; returnz;

    验证器不允许我这样做。

  2. 设置选项Macro expression并提供可枚举对象:

    CMSContext.Current.GlobalObjects.CustomTables["xyz.PossibleTargets"].项

    在项目转换中:{%Explanation%} 和在值列中 {%TargetValue%}

    这个也不行。

Dropdown configuration

如何正确地做到这一点?有关字段的文档和提示没有帮助。

Kentico v11.0.26

不用宏,直接用SQL,用宏只会把看似简单的下拉列表复杂化。

SELECT '', '-- select one --' AS Explanation
UNION
SELECT TargetValue, Explanation
FROM xyz_PossibleTargets -- make sure to use the correct table name
ORDER BY ExplanationText

这应该会准确地填充您要查找的内容,而无需复杂的宏。

我认为您应该在不将字段标记为宏的情况下执行此操作。只需在那里输入宏。在屏幕上看一下