Kentico 使用自定义表提供下拉列表数据源
假设我有一个名为Kentico 使用自定义表提供下拉列表数据源,kentico,Kentico,假设我有一个名为可能的URL目标参数的自定义表,该表的代码名为xyz.PossibleTargets,共有两列: 说明和值。 如何在页面类型的下拉字段中输入数据,使值(从表中)作为值,而说明作为名称? 我已经尝试过但不起作用的: 创造价值;命名按换行符划分的对,并将其作为选项列表放置: z=“”;foreach(CMSContext.Current.GlobalObjects.CustomTables[“xyz.PossibleTargets”].Items中的x){z+=x.GetValue(
可能的URL目标参数的自定义表,该表的代码名为xyz.PossibleTargets
,共有两列:
说明
和值
。
如何在页面类型的下拉字段中输入数据,使值(从表中)作为值,而说明作为名称?
我已经尝试过但不起作用的:
创造价值;命名按换行符划分的对,并将其作为选项列表放置:
z=“”;foreach(CMSContext.Current.GlobalObjects.CustomTables[“xyz.PossibleTargets”].Items中的x){z+=x.GetValue(“值”);z+=x.GetValue(“解释”);z+=x.GetValue(“解释”);z+=“\n”};返回z
验证器不允许我做这样的把戏
设置选项宏表达式
并提供可枚举对象:
CMSContext.Current.GlobalObjects.CustomTables[“xyz.PossibleTargets”].Items
在项转换中:{%explainion%}
和在值列中{%TargetValue%}
这也不起作用
如何正确地做到这一点?有关字段的文档和提示没有帮助
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
这应该准确地填充您要查找的内容,而不需要复杂的宏。我认为您应该这样做,而不需要将字段标记为宏。只需在那里输入宏。在屏幕上看一看谢谢,这也起作用了,但我很好奇如何才能释放K#的真正力量,以及简单易用的宏语法;)。它功能强大,但也不需要,在这种情况下可能会限制性能。作为@DawidJachnik答案的旁注,下拉配置中的宏可以如下所示:GlobalObjects.CustomTables[“xyz.PossibleTargets”].Items.Columns(“值,解释”).OrderBy(“解释”)
。您不需要自己循环遍历这些值,Kentico将应用提供的转换为您迭代结果。