我想允许下拉列表显示之前选择但现在从下拉列表源中删除的值。而不是显示空白。下拉列表位于网格列中。
网格:
...
columns.ForeignKey(p => p.CurrentCategory, @Model.LookupCategory, "CategoryName", "CategoryName").Width(160);
...
模板编辑器
@using System.Collections
@(
Html.Kendo().DropDownListFor(m => m)
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"])
.ValuePrimitive(true)
.AutoWidth(true)
)
因此,要更详细地解释:CurrentCategory列是文本列(不是id列),用户可以从LookupCategory中找到的项列表中进行选择。但是,如果从LookupCategory中删除某个项,则该值仍应显示在用户已为CurrentCategory选择该值的实例中。
目前,如果某行包含不在LookupCategory列表中的CurrentCategory值,则它将显示为空白。
也许我必须使用组合框?
答案 0 :(得分:1)
您可以在视图模型中添加另一个属性AllCategory,其中包含LookupCategory和已删除项目的并集。 网格将使用此属性绑定菜单选项,LookupCategory属性将用作下拉源。
请参阅下文,了解如何在使用外键列模板时区分两者。
columns.ForeignKey(p => p.CurrentCategory, Model.AllCategory, "CategoryName", "CategoryName")
.EditorViewData(new {lookupCategory = Model.LookupCategory})
.Width(160);
@using System.Collections
@(
Html.Kendo().DropDownListFor(m => m)
.BindTo((SelectList) ViewData["lookupCategory"])
.ValuePrimitive(true)
.AutoWidth(true)
)