Gridview 在网格中编辑行时,如何将combobox与外部数据源一起使用?

Gridview 在网格中编辑行时,如何将combobox与外部数据源一起使用?,gridview,kendo-ui,Gridview,Kendo Ui,NETMVC3,剑道UI网页,剑道网格控件 我的主数据源通过外键绑定使用外部数据源: .Columns(columns => { columns.ForeignKey(p => p.FK_ID, (System.Collections.IEnumerable)ViewData["things"], "ID", "NAME"); ... 在视图模式下,绑定按预期工作,我看到由“FK_ID-ID”关系绑定的NAME属性 然而,当我进入编辑模式时,奇怪的事情发生了: 在

NETMVC3,剑道UI网页,剑道网格控件

我的主数据源通过外键绑定使用外部数据源:

.Columns(columns =>
{
    columns.ForeignKey(p => p.FK_ID, (System.Collections.IEnumerable)ViewData["things"], "ID", "NAME");
    ...
在视图模式下,绑定按预期工作,我看到由“FK_ID-ID”关系绑定的
NAME
属性

然而,当我进入编辑模式时,奇怪的事情发生了:

  • 在内联模式下——列被禁用(即,此字段没有任何类型的编辑器)

  • 在弹出模式下——有一个editbox编辑器,而不是combobox,所以我必须手动键入它,尽管绑定是事实

在剑道网站上的演示显示,如果外键处于编辑模式,将显示combobox,并且选择仅限于外部数据源(相当常识)


那么,我还应该做些什么来显示组合框并仅从其中显示的值中进行选择呢?

请检查您是否具有所需的外键编辑器?它应该位于Views/Shared/EditorTemplates文件夹下,名称为GridForeignKey.cshtml(如果使用aspx视图引擎,则为.aspx)

如果没有,您可以使用上面的信息手动添加。编辑的内容是:

@( Html.Kendo().DropDownList()
    .Name(ViewData.TemplateInfo.GetFullHtmlFieldName(""))
    .BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"]))

非常感谢你!我可以问你装订是怎么做的吗?我的意思是我有一个网格
A
,之所以选择GridForeignKey,是因为它是为每个带有外键的网格选择的,或者是因为我必须在某个地方做一些额外的设置?我不确定我是否理解你的意思。GridForeignKey编辑器用于定义为ForeignKey列的每个网格和列。基本上,如果使用Kendo VisualStudio扩展创建项目,编辑器模板会自动添加到项目中。我重新措辞。你添加这个编辑器模板一次,它将用于所有外键网格,对吗?当然,我只是在等待确认,所以我有完整的答案:-)。非常感谢。