我使用以下代码作为宏来填充下拉列表控件。我遇到的问题是我在代码中添加的空选项不会在下拉列表中呈现为选项。我不确定为什么。
private object ListOfRegions(EvaluationContext context)
{
var regions = CustomTableItemProvider.GetItems(CustomTableClassNames.CountryRegionMapping).WhereNotNull("CountryCode").Column("RegionName").Distinct().OrderByAscending("RegionName");
var items = regions.ToList().Select(r => new ListItem(r.GetStringValue("RegionName", string.Empty))).ToList();
items.Insert(0, new ListItem(" ", " "));
return items;
}
我通过返回分隔字符串
来完成此工作var regions = CustomTableItemProvider.GetItems(CustomTableClassNames.CountryRegionMapping).WhereNotNull("CountryCode").Column(columnName).Distinct().OrderByAscending(columnName);
var items = regions.ToList().Select(r => new ListItem(r.GetStringValue(columnName, string.Empty))).ToList();
items.Insert(0, new ListItem("Please select ...", string.Empty));
return items.Select(i => $"{i.Value};{i.Text}");
答案 0 :(得分:0)
在新的ListItem
文字中,添加类似" - 选择一个 - "。使用空值和字符串,Kentico在生成下拉列表时将其删除。你应该能够放弃一个无效的值,就像" -1"。
<强>更新强>
根据您对问题的回答,我建议使用简单的sql语句来完成您要查找的内容与自定义宏方法的对比。
SELECT '' AS Value, '-- select one --' AS [Text]
UNION
SELECT DISTINCT ItemText AS Value, ItemText AS [Text]
FROM customtable_SampleTable
WHERE ItemText IS NOT NULL