使用自定义 table 来提供下拉列表数据源
Using custom table to feed drop-down list datasource
假设我的自定义 Table 名为 Possible URL target parameters
,代号为 xyz.PossibleTargets
,有 2 列:
Explanation
和 Value
。
如何为页面类型的下拉字段提供数据,使 Value
(来自 table)作为 Value
和 Explanation
作为下拉列表中的 name
?
我已经尝试过但没有用:
生成值;名称对除以换行符并将其放置为选项列表:
z = ""; foreach (x in CMSContext.Current.GlobalObjects.CustomTables["xyz.PossibleTargets"].Items) {z += x.GetValue("Value"); z +=";"; z += x.GetValue("Explanation"); z += "\n" }; returnz;
验证器不允许我这样做。
设置选项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
这应该会准确地填充您要查找的内容,而无需复杂的宏。
我认为您应该在不将字段标记为宏的情况下执行此操作。只需在那里输入宏。在屏幕上看一下
假设我的自定义 Table 名为 Possible URL target parameters
,代号为 xyz.PossibleTargets
,有 2 列:
Explanation
和 Value
。
如何为页面类型的下拉字段提供数据,使 Value
(来自 table)作为 Value
和 Explanation
作为下拉列表中的 name
?
我已经尝试过但没有用:
生成值;名称对除以换行符并将其放置为选项列表:
z = ""; foreach (x in CMSContext.Current.GlobalObjects.CustomTables["xyz.PossibleTargets"].Items) {z += x.GetValue("Value"); z +=";"; z += x.GetValue("Explanation"); z += "\n" }; returnz;
验证器不允许我这样做。
设置选项
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
这应该会准确地填充您要查找的内容,而无需复杂的宏。
我认为您应该在不将字段标记为宏的情况下执行此操作。只需在那里输入宏。在屏幕上看一下